webpackJsonp([160, 161, 163], {
    1046: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1047), i(1)], void 0 !== (a = function (e, t, i, s, a) {
            return i.Collection.extend({
                model: s, init: function () {
                    i.loadedMap ? this.mapInit() : this.loadMap()
                }, loadMap: function () {
                    var e = document.getElementsByTagName("head")[0], t = document.createElement("script");
                    t.type = "text/javascript";
                    var s = this;
                    t.onload = function () {
                        setTimeout(function () {
                            s.mapInit()
                        }, 300)
                    }, t.src = "https://webapi.amap.com/maps?v=1.3&key=" + a.mapkey + "&plugin=AMap.Autocomplete", e.appendChild(t), i.loadedMap = !0
                }, getGeoPoint: function () {
                    this.geoCoderPlugin.getLocation(this.last_search_val)
                }, mapInit: function () {
                    var e = this, t = setInterval(function () {
                        AMap && AMap.Map && (clearInterval(t), e.map = new AMap.Map("newaddress_container"), e.map.on("complete", function () {
                            var t = {pageIndex: 1, pageSize: 10, city: ""};
                            e.completePlugin = new AMap.Autocomplete(t), e.trigger("loadMap")
                        }))
                    }, 500)
                }, triggerPoint: function (e) {
                    if ("NO_DATA" == e.info) this.trigger("point_no_exist", "地址无法找到，请重新输入"); else {
                        var t = e.geocodes, i = t[0].location.getLng(), s = t[0].location.getLat();
                        this.trigger("uploadPoint", {longitude: i, latitude: s})
                    }
                }, parse: function (e, t) {
                    "complete" == e && (this.reset(t.tips.slice(0, 7)), this.trigger("get_complete_data", this.last_search_val))
                }, fetch: function (e) {
                    var t = e.search_val;
                    this.last_search_val = t, this.completePlugin.search(t, this.parse.bind(this))
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1047: function (e, t, i) {
        var s, a;
        s = [i(4), i(1069)], void 0 !== (a = function (e, t) {
            return t.extend({
                defaults: {select_address: !1}, initialize: function () {
                    this.on("change:select_address", function () {
                        e.trigger("new_address_add", this)
                    })
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1048: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1047), i(1023)], void 0 !== (a = function (e, t, i, s, a) {
            return i.View.extend({
                template: a.gaodeaddress,
                tagName: "li",
                defaults: {select_address: !1},
                initialize: function (e) {
                    return window.isMobile ? this.events = {tap: "select_address"} : this.events = {click: "select_address"}, e.model && (this.model = e.model), this.listenTo(this.model, "change:select_address", this.render), this
                },
                select_address: function () {
                    var t = this;
                    1 != t.model.get("select_address") && (t.model.set("select_address", !0), i.distance = t.model.toJSON(), i.new_add_address = t.model, setTimeout(function () {
                        e(".new_address").addClass("hidden"), e(".add_address_wrap").removeClass("hidden"), e(".get_add").val(t.model.toJSON().district + t.model.toJSON().address), e(".address_btn").addClass("address_btn_active")
                    }, 300))
                },
                render: function () {
                    return this.$el.html(this.template(this.model.toJSON())), this
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1053: function (e, t, i) {
        var s, a;
        s = [i(4), i(1022)], void 0 !== (a = function (e, t) {
            return t.extend({defaults: {select_address: !1}})
        }.apply(t, s)) && (e.exports = a)
    }, 1066: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1053), i(1), i(1067)], void 0 !== (a = function (e, t, i, s, a, n) {
            return n.extend({
                model: s, initialize: function (e) {
                    "teacher" == e.type ? this.url = a.config.api + "/api/h5pt/v1/student/teacher/teacher_address.json" : this.url = a.config.api + "/api/h5pt/v2/student/getaddresslist.json", this.fetch({params: e})
                }, parse: function (t) {
                    return t.response && 0 === t.response.error_code ? (t.user_address_details && t.user_address_details.length > 0 ? i.is_empty = !1 : i.is_empty = !0, t.user_address_details) : e.isArray(t) ? t : void this.trigger("error")
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1067: function (e, t, i) {
        var s, a;
        s = [i(4), i(7), i(1)], void 0 !== (a = function (e, t, i) {
            return e.Collection.extend({
                fetch: function (s) {
                    e.Collection.prototype.fetch.call(this, _.extend(s || {}, {
                        error: function (e, a, n) {
                            if (s.ignoreError) t.remove("user"), t.remove("user_info"), t.remove("grade_id"), t.remove("course_id"), t.remove("weixin_id"), s.ignoreError(); else if (401 == a.status || 412 == a.status) if (t.remove("login_direct_page_order"), i.isWeixin()) {
                                var o = window.location.href;
                                i.weixin_auth(o)
                            } else i.isApp() || (t.remove("login_direct_page"), t.set("login_direct_page", window.location.href), t.remove("user"), t.remove("user_info"), t.remove("grade_id"), t.remove("course_id"), t.remove("weixin_id"), window.location.href = i.goToLogin({from: "kicked"}));
                            return !1
                        }, type: "POST", data: JSON.stringify(s.params)
                    }))
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1068: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1046), i(1048), i(1023), i(1), i(7), i(16)], void 0 !== (a = function (e, t, i, s, a, n, o, r, d) {
            var c = {};
            return i.View.extend({
                className: "certWrap com-wrap new_address",
                template: n.newaddresses,
                events: {
                    "click #returnBack": "returnBack",
                    "click .search_btn": "fetchAddress",
                    "click .add_def": "def_Address",
                    "input #searchInput": "fetchAddress",
                    "blur #searchInput": "hideDropdown",
                    "doubleTap #searchInput": "confirmRemove"
                },
                initialize: function (t) {
                    var a = this;
                    this.options = t || {}, this.select_address = null, this.collection = new s, this.listenTo(this.collection, "get_complete_data", this.showSearchVal), i.default_address ? this.options.addresses = i.default_address.formattedAddress : this.options.addresses = "获取地址失败", this.render(), this.listenTo(this.collection, "loadMap", this.confirmLoad), this.collection.init(), this.dropDown = this.$(".model-dropdown"), this.searchInput = this.$("#searchInput"), this.city_address = r.get("city_address"), this.city_id_info = null, this.city_id = null, this.lock = !1, this.extraInfoInput = this.$(".model-extra input"), this.city_address || i.ajax({
                        url: o.config.apicdn + "/api/cpb/v2/config/citys.json",
                        type: "GET",
                        dataType: "JSON",
                        success: function (e) {
                            0 == e.response.error_code ? a.city_id_info = e.cities : alert("暂时无法获取城市地址")
                        }
                    }), setTimeout(function () {
                        e(".search_notice").addClass("hidden")
                    }, 2e3), this.listenTo(i, "new_address_add", this.changeNewAddress), this.listenTo(this.collection, "error", this.showError)
                },
                render: function () {
                    window.LoadingPage && window.LoadingPage.removeLoadingPage && window.LoadingPage.removeLoadingPage(), this.$el.html(this.template(this.options)), this.version < "4.5.0" && this.$el.addClass("header-for-old-app")
                },
                confirmRemove: function () {
                    window.confirm("是否清空输入") && this.searchInput.val("")
                },
                def_Address: function () {
                    if ("获取地址失败" != e(".add_def").html()) {
                        i.distance = i.default_address, i.distance = {
                            district: i.default_address.formattedAddress,
                            location: i.default_address.position,
                            name: i.default_address.addressComponent.province
                        };
                        var s = this.collection.map, a = i.distance.location, n = this;
                        this.city_id = "inProgress", s.setCenter([a.lng, a.lat]), s.getCity(function (e) {
                            var s = e.citycode;
                            if (s) {
                                var a = t.find(n.city_id_info, function (e) {
                                    return "0" + e.gaode_city_code == s
                                });
                                a ? (n.city_id = a.city_id, n.city_name = a.city_name, i.city_id = a.city_id, c[s] = a.city_id) : null == n.global_pop && (n.global_pop = new d({
                                    sHtml: '<div class="toast-message">暂不支持当前城市，请重新输入</div>',
                                    mastClose: !0,
                                    cancleX: !1,
                                    extraClass: "toast-qingqing",
                                    animate: !0,
                                    toast: !0,
                                    toast_time: 1e3,
                                    mode: "normal",
                                    toast_cb: function () {
                                        n.global_pop = null
                                    }
                                }))
                            } else null == n.global_pop && (n.global_pop = new d({
                                sHtml: '<div class="toast-message">获取城市信息失败，请稍后再试</div>',
                                mastClose: !0,
                                cancleX: !1,
                                extraClass: "toast-qingqing",
                                animate: !0,
                                toast: !0,
                                toast_time: 1e3,
                                mode: "normal",
                                toast_cb: function () {
                                    n.global_pop = null
                                }
                            }))
                        }), setTimeout(function () {
                            e(".new_address").addClass("hidden"), e(".add_address_wrap").removeClass("hidden"), e(".get_add").val(i.distance.district), e(".address_btn").addClass("address_btn_active")
                        }, 300)
                    }
                },
                showSearchVal: function () {
                    var e = this;
                    e.$("#newaddresses").html(""), this.collection.forEach(function (t, i) {
                        e.$("#newaddresses").append(new a({model: t}).render().el)
                    }), this.dropDown.show()
                },
                confirmLoad: function () {
                    this.loadedMap = !0
                },
                hideDropdown: function () {
                    var e = this;
                    null != this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(function () {
                        e.dropDown.hide()
                    }, 2500)
                },
                fetchAddress: function (t) {
                    this.uploadModel = null;
                    var i = (e(t.currentTarget), e("#searchInput").val());
                    1 == this.loadedMap && this.collection.fetch({search_val: i})
                },
                upload: function () {
                    var e = this;
                    if ("" == this.searchInput.val()) return !1;
                    this.uploadModel ? this.finalAdd() : null == this.global_pop && (this.global_pop = new d({
                        sHtml: '<div class="toast-message">请选择提示地址作为基础地址或者使用定位地址</div>',
                        mastClose: !0,
                        cancleX: !1,
                        extraClass: "toast-qingqing",
                        animate: !0,
                        toast: !0,
                        toast_time: 2e3,
                        mode: "normal",
                        toast_cb: function () {
                            e.global_pop = null
                        }
                    }))
                },
                getGeoPoint: function () {
                    this.collection.getGeoPoint(), this.listenToOnce(this.collection, "point_no_exist", this.notFoundData), this.listenToOnce(this.collection, "uploadPoint", this.finalAdd.bind(this))
                },
                finalAdd: function (t) {
                    if (1 == this.lock) return !1;
                    if (null == this.city_id) return alert("暂时无法定位您输入的城市地址，请再次输入选择"), !1;
                    if ("inProgress" == this.city_id) return alert("正在定位您的城市信息，请稍后"), !1;
                    var s = this;
                    if (t) {
                        if (!t.latitude) return alert("暂时无法定位您输入的地址，请再次输入选择"), !1;
                        var a = t.latitude, n = t.longitude
                    } else var c = this.uploadModel.toJSON(), a = c.location.lat, n = c.location.lng;
                    var _ = this.$("#searchInput").val() + e.trim(this.extraInfoInput.val()), h = {
                        city_id: this.city_id,
                        address: _,
                        geo_point: {longitude: n, latitude: a},
                        name: this.city_name
                    };
                    if (o.isApp()) var l = o.config.api + "/api/h5pt/v1/student/info/addaddress.json"; else var l = o.config.api + "/api/h5pt/v1/student/info/addaddress.json";
                    this.lock = !0, 0 == this.options.need_sync ? (this.lock = !1, this.options.empty ? i.trigger("fake_collection_address_add", h, 1) : i.trigger("fake_collection_address_add", h, 0)) : i.ajax({
                        error: function (e, t, i) {
                            return 401 != t.status && 412 != t.status || (r.remove("login_direct_page_order"), r.remove("user"), r.remove("user_info"), r.remove("grade_id"), r.remove("course_id"), r.remove("weixin_id"), window.location.href = o.goToLogin({from: "kicked"})), !1
                        }, url: l, type: "POST", dataType: "JSON", data: JSON.stringify(h), success: function (e) {
                            var t = e;
                            if (0 === t.response.error_code) {
                                if (o.isApp()) var a = o.config.api + "/api/h5pt/v1/student/info/setdefaultaddress.json"; else var a = o.config.api + "/api/h5pt/v1/student/info/setdefaultaddress.json";
                                s.options.empty && i.ajax({
                                    error: function (e, t, i) {
                                        return 401 != t.status && 412 != t.status || (r.remove("login_direct_page_order"), r.remove("user"), window.location.href = o.goToLogin({from: "kicked"})), !1
                                    },
                                    success: function (e) {
                                        var t = JSON.parse(e);
                                        0 === t.response.error_code && (!!s.global_pop && s.global_pop.destroy(), i.trigger("fake_collection_address_add", h, 1), i.trigger("collection_address_add", t.address_id, 1))
                                    },
                                    url: a,
                                    type: "POST",
                                    dataType: "JSON",
                                    data: JSON.stringify({address_id: t.address_id})
                                }), null == s.global_pop && (s.global_pop = new d({
                                    sHtml: '<div class="toast-message">成功添加新地址</div>',
                                    mastClose: !0,
                                    cancleX: !1,
                                    extraClass: "toast-qingqing",
                                    animate: !0,
                                    toast: !0,
                                    toast_time: 1e3,
                                    mode: "normal",
                                    toast_cb: function () {
                                        s.global_pop = null
                                    }
                                })), s.lock = !1, i.trigger("collection_address_add", t.address_id, 0)
                            } else s.lock = !1, alert("暂时无法添加新地址，请尝试使用现有地址")
                        }, error: function () {
                            s.lock = !1, alert("暂时无法添加新地址，请尝试使用现有地址")
                        }
                    })
                },
                notFoundData: function (e) {
                    alert(e)
                },
                changeNewAddress: function (e) {
                    if (this.city_id_info) {
                        var s = e.toJSON(), a = this.collection.map, n = s.location, o = this;
                        this.city_id = "inProgress", a.setCenter([n.lng, n.lat]), a.getCity(function (e) {
                            var s = e.citycode;
                            if (s) {
                                var a = t.find(o.city_id_info, function (e) {
                                    return "0" + e.gaode_city_code == s
                                });
                                a ? (o.city_id = a.city_id, o.city_name = a.city_name, i.city_id = a.city_id, c[s] = a.city_id) : null == o.global_pop && (o.global_pop = new d({
                                    sHtml: '<div class="toast-message">暂不支持当前城市，请重新输入</div>',
                                    mastClose: !0,
                                    cancleX: !1,
                                    extraClass: "toast-qingqing",
                                    animate: !0,
                                    toast: !0,
                                    toast_time: 1e3,
                                    mode: "normal",
                                    toast_cb: function () {
                                        o.global_pop = null
                                    }
                                }))
                            } else null == o.global_pop && (o.global_pop = new d({
                                sHtml: '<div class="toast-message">获取城市信息失败，请稍后再试</div>',
                                mastClose: !0,
                                cancleX: !1,
                                extraClass: "toast-qingqing",
                                animate: !0,
                                toast: !0,
                                toast_time: 1e3,
                                mode: "normal",
                                toast_cb: function () {
                                    o.global_pop = null
                                }
                            }))
                        }), this.searchInput.val(s.district + s.name), this.uploadModel = e, this.dropDown.hide()
                    }
                },
                returnBack: function () {
                    e(".add_address_wrap").removeClass("hidden"), this.$el.addClass("hidden")
                },
                showError: function () {
                    window.LoadingPage && window.LoadingPage.removeLoadingPage && window.LoadingPage.removeLoadingPage(), o.showSystemError()
                },
                destroy: function () {
                    this.remove()
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1069: function (e, t, i) {
        var s, a;
        s = [i(4), i(5), i(7), i(1)], void 0 !== (a = function (e, t, i, s) {
            var a = function (a) {
                e.Model.prototype.fetch.call(this, t.extend(a || {}, {
                    error: function (e, t, n) {
                        if (a.ignoreError) i.remove("user"), i.remove("user_info"), i.remove("grade_id"), i.remove("course_id"), i.remove("weixin_id"), a.ignoreError(); else if (401 == t.status || 412 == t.status) if (i.remove("login_direct_page_order"), s.isWeixin()) {
                            var o = window.location.href;
                            s.weixin_auth(o)
                        } else s.isApp() || (i.remove("login_direct_page"), i.set("login_direct_page", window.location.href), i.remove("user"), i.remove("user_info"), i.remove("grade_id"), i.remove("course_id"), i.remove("weixin_id"), window.location.href = s.goToLogin({from: "kicked"}));
                        return !1
                    }, type: "POST", data: JSON.stringify(a.params)
                }))
            };
            return e.Model.extend({
                fetch: a, initialize: function (e) {
                    e && e.parse && (this.parse = e.parse)
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1086: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1046), i(1048), i(1068), i(1023), i(1), i(7), i(16)], void 0 !== (a = function (e, t, i, s, a, n, o, r, d, c) {
            return i.View.extend({
                className: "certWrap com-wrap fixed-pop teacher_head_header add_address_wrap",
                template: o.add_address,
                events: {
                    "click #returnBack": "returnBack",
                    "click .get_address": "get_address",
                    "click .address_btn": "upload"
                },
                initialize: function (e) {
                    this.options = e, this.select_address = null, this.render(), this.city_address = d.get("city_address"), this.city_id_info = null, this.city_id = null, this.lock = !1
                },
                render: function () {
                    this.$el.html(this.template(this.options))
                },
                upload: function () {
                    if (e(".address_btn").hasClass("address_btn_active")) {
                        if (i.distance && (this.uploadModel = i.distance), i.city_id ? this.city_id = i.city_id : this.city_id = "inProgress", !d.get("user")) return e(".teacher-list").removeClass("hidden"), null == this.uploadModel ? (this.searchInput.val(""), this.$el.addClass("hidden"), !1) : ("nofound" == this.uploadModel && (this.uploadModel = null), i.trigger("find_select_address", this.uploadModel, e.trim(e(".get_add").val()), this.select_address), this.$el.addClass("hidden"), void 0);
                        var t = this;
                        if ("" == e(".get_add").val()) return !1;
                        this.uploadModel ? this.finalAdd() : null == this.global_pop && (this.global_pop = new c({
                            sHtml: '<div class="toast-message">请选择提示地址作为基础地址或者使用定位地址</div>',
                            mastClose: !0,
                            cancleX: !1,
                            extraClass: "toast-qingqing",
                            animate: !0,
                            toast: !0,
                            toast_time: 2e3,
                            mode: "normal",
                            toast_cb: function () {
                                t.global_pop = null
                            }
                        }))
                    }
                },
                finalAdd: function (s) {
                    if (1 == this.lock) return !1;
                    if (null == this.city_id) return alert("暂时无法定位您输入的城市地址，请再次输入选择"), !1;
                    if ("inProgress" == this.city_id) return alert("正在定位您的城市信息，请稍后"), !1;
                    var a = this;
                    if (s) {
                        if (!s.latitude) return alert("暂时无法定位您输入的地址，请再次输入选择"), !1;
                        var n = s.latitude, o = s.longitude
                    } else {
                        var _ = this.uploadModel, n = _.location.lat, o = _.location.lng;
                        this.city_name = _.name
                    }
                    var h = this.$(".get_add").val() + e(".house_numbers").val(), l = {
                        city_id: this.city_id,
                        address: h,
                        geo_point: {longitude: o, latitude: n},
                        name: this.city_name
                    };
                    if (r.isApp()) var p = r.config.api + "/api/h5pt/v1/student/info/addaddress.json"; else var p = r.config.api + "/api/h5pt/v1/student/info/addaddress.json";
                    this.lock = !0, i.ajax({
                        url: p,
                        type: "POST",
                        dataType: "JSON",
                        data: JSON.stringify(l),
                        success: function (s) {
                            var n = s;
                            if (0 === n.response.error_code) {
                                if (i.is_empty) {
                                    if (r.isApp()) var o = r.config.api + "/api/h5pt/v1/student/info/setdefaultaddress.json"; else var o = r.config.api + "/api/h5pt/v1/student/info/setdefaultaddress.json";
                                    i.ajax({
                                        error: function (e, t, i) {
                                            return 401 != t.status && 412 != t.status || (d.remove("login_direct_page_order"), d.remove("user"), window.location.href = r.goToLogin({from: "kicked"})), !1
                                        },
                                        success: function (e) {
                                            0 === e.response.error_code && i.trigger("collection_address_add", e.address_id, 1)
                                        },
                                        url: o,
                                        type: "POST",
                                        dataType: "JSON",
                                        data: JSON.stringify({address_id: n.address_id})
                                    })
                                }
                                null == a.global_pop && (a.global_pop = new c({
                                    sHtml: '<div class="toast-message">成功添加新地址</div>',
                                    mastClose: !0,
                                    cancleX: !1,
                                    extraClass: "toast-qingqing",
                                    animate: !0,
                                    toast: !0,
                                    toast_time: 1e3,
                                    mode: "normal",
                                    toast_cb: function () {
                                        a.global_pop = null
                                    }
                                })), i.select_id = n.address_id, a.lock = !1;
                                var _ = t.extend(l, {id: n.address_id, is_default: !0});
                                i.student_address_list ? a.is_new = !1 : (a.is_new = !0, i.student_address_list = []), i.student_address_list.unshift(_), i.student_address = _, i.page_views && i.page_views.student_address_list && (i.page_views.student_address_list.remove(), i.page_views.student_address_list = null), e(".address_main").removeClass("hidden"), a.$el.addClass("hidden"), i.trigger("new_add_address", this.model)
                            } else a.lock = !1, alert("暂时无法添加新地址，请尝试使用现有地址")
                        },
                        error: function () {
                            a.lock = !1, alert("暂时无法添加新地址，请尝试使用现有地址")
                        }
                    })
                },
                notFoundData: function (e) {
                    alert(e)
                },
                returnBack: function () {
                    d.get("user") ? e(".address_main").removeClass("hidden") : e(".teacher-list").removeClass("hidden"), this.$el.addClass("hidden")
                },
                get_address: function () {
                    var t = this;
                    t.new_address ? (t.new_address.remove(), t.new_address = new n, e("body").append(t.new_address.el), e(".add_address_wrap").addClass("hidden")) : (t.new_address = new n, e("body").append(t.new_address.el), e(".add_address_wrap").addClass("hidden"))
                },
                show: function (t) {
                    e(".teacher-list").addClass("hidden"), this.$el.removeClass("hidden")
                },
                showError: function () {
                    window.LoadingPage && window.LoadingPage.removeLoadingPage(), r.showSystemError()
                },
                destroy: function () {
                    this.remove()
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1116: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1066), i(1117), i(1086), i(1023), i(1), i(16)], void 0 !== (a = function (e, t, i, s, a, n, o, r, d) {
            return i.View.extend({
                className: "certWrap com-wrap teacher_head_header address_main",
                template: o.addresses,
                events: {
                    "click #returnBack": "returnBack",
                    "click .address_editor": "add_address",
                    "click .add_btn": "add_address"
                },
                initialize: function (e) {
                    this.version = e.ver, window.LoadingPage && window.LoadingPage.removeLoadingPage && window.LoadingPage.removeLoadingPage(), this.version < "4.5.0" && this.$el.addClass("header-for-old-app");
                    this.parent = e.parent, this.context = e.context, this.options = e, this.select_address = null, e.collection && (this.collection = e.collection), this.get_qq_user_id()
                },
                get_qq_user_id: function () {
                    var e = this;
                    i.ajax({
                        data: JSON.stringify({}),
                        url: r.config.api + "/api/h5pt/v1/student/base_info.json",
                        type: "POST",
                        dataType: "JSON",
                        success: function (t) {
                            e.collection ? e.render() : (e.collection = new s({
                                qingqing_student_id: t.student_info.user_info.qingqing_user_id,
                                type: t.student_info.user_info.user_type
                            }), e.options.type = t.student_info.user_info.user_type), e.listenTo(e.collection, "sync", e.render), e.listenTo(e.collection, "error", e.showError)
                        },
                        ignoreError: function () {
                        }
                    })
                },
                render: function () {
                    window.LoadingPage && window.LoadingPage.removeLoadingPage && window.LoadingPage.removeLoadingPage(), "student" == this.options.type && (this.options.show_new_address = !0), this.$el.html(this.template(this.options)), this.version < "4.5.0" && this.$el.addClass("header-for-old-app");
                    var e = this;
                    e.collection.forEach(function (t, s) {
                        i.select_id == t.toJSON().id && t.set("select_address", !0), e.$(".search-right").append(new a({
                            model: t,
                            parent: e
                        }).render().el), 1 == t.get("select_address") && (e.select_address = t), e.listenTo(t, "choose_select_address", e.changeAddress), e.listenTo(t, "del_address", e.delAddress)
                    })
                },
                changeAddress: function (e) {
                    0 != e.get("select_address") && (null != this.select_address && this.select_address.set("select_address", !1, {slient: !0}), this.select_address = e)
                },
                add_address: function () {
                    var t = this;
                    t.add_address, t.add_address = new n, e("body").append(t.add_address.el), e(".address_main").addClass("hidden")
                },
                returnBack: function () {
                    e(".teacher-list").removeClass("hidden"), this.$el.addClass("hidden")
                },
                show: function (t) {
                    e(".teacher-list").addClass("hidden"), this.$el.removeClass("hidden")
                },
                showError: function () {
                    window.LoadingPage && window.LoadingPage.removeLoadingPage && window.LoadingPage.removeLoadingPage(), r.showSystemError()
                },
                destroy: function () {
                    this.stopListening(), this.remove()
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1117: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1053), i(1023), i(1), i(16)], void 0 !== (a = function (e, t, i, s, a, n, o) {
            return i.View.extend({
                template: a.address, events: {click: "changeAddress"}, initialize: function (e) {
                    return e.model && (this.model = e.model), this.parent = e.parent, this.listenTo(this.model, "change:select_address", this.render), this
                }, changeAddress: function () {
                    this.model.set("select_address", !0), this.model.trigger("choose_select_address", this.model), this.$el.addClass("address-grey"), i.trigger("saveAddress", this.model), i.select_id = this.model.toJSON().id;
                    var t = this;
                    setTimeout(function () {
                        e(".teacher-list").removeClass("hidden"), e(".address_main").addClass("hidden"), e(".address-edit span").html(t.model.toJSON().address), i.trigger("find_select_address", t.model.toJSON(), t.model.toJSON().address, this.select_address)
                    }, 300)
                }, render: function () {
                    return this.$el.html(this.template(this.model.toJSON())), this
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1299: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1301), i(1302), i(1303), i(1304), i(1305), i(1306), i(1307), i(1308), i(1300), i(1309), i(1310), i(1311), i(1312), i(1023), i(7), i(843), i(19), i(1116), i(1086)], void 0 !== (a = function (e, t, i, s, a, n, o, r, d, c, _, h, l, p, u, g, m, f, v, w, y, b) {
            function C() {
                var e = window.location.search;
                0 !== e.indexOf("?") && 0 !== e.indexOf("#") || (e = e.substring(1, e.length));
                var t = {}, i = e.split("&");
                for (var s in i) {
                    var a = "string" == typeof i[s] ? i[s].split("=") : [];
                    2 == a.length && (t[a[0]] = decodeURIComponent(a[1]))
                }
                return t
            }

            var x = {}, $ = {};
            webcfg.find_teacher_config && (i.characteristics_phrases = t.pluck(webcfg.find_teacher_config.characteristics_phrases, "phrase")), w.registerHelper("course-choose-list", function (e, t) {
                for (var s = e.length, a = {
                    "数学": "shuxue",
                    "英语": "yinyu",
                    "语文": "yuwen",
                    "物理": "wuli",
                    "化学": "huaxue",
                    "政治": "zhengzhi",
                    "生物": "shengwu",
                    "历史": "lishi",
                    "地理": "dili",
                    "奥数": "aoshu",
                    "科学": "kexue",
                    "美术": "meishu"
                }, n = [], o = (s + 1) % 5, r = 0; r <= e.length; r++) {
                    if (r % 5 == 0 && n.push('<div class="row-wrap">'), r == e.length) n.push('<div class="item" data-id="unlimit"><div class="icon" data-external="actioncode=c_subject_change"><img data-external="actioncode=c_subject_change" src="' + i.mapImages.icon_search_buxian + '"></div><div class="txt" data-external="actioncode=c_subject_change">不限</div></div>'); else {
                        var d = a[e[r].course_name];
                        d || (d = "zonghe"), n.push('<div class="item" data-id="' + e[r].course_id + '"><div class="icon" data-external="actioncode=c_subject_change"><img data-external="actioncode=c_subject_change" src="' + i.mapImages["icon_home_" + d] + '"></div><div class="txt" data-external="actioncode=c_subject_change">' + e[r].course_name + "</div></div>")
                    }
                    r % 5 == 4 && n.push("</div>")
                }
                if (0 != o) {
                    for (var r = 0; r < 5 - o; r++) n.push('<div class="item no-active"></div>');
                    n.push("</div>")
                }
                return n.join("")
            }), w.registerHelper("parse_seconde_phases", function (e, t) {
                for (var i = e.length, s = [], a = i % 2, n = 0; n < e.length; n++) n % 2 == 0 && s.push('<div class="swiper-slide cf">'), t && -1 != t.indexOf(e[n].secondary_course_name) ? s.push('<div class="single_item active">' + e[n].secondary_course_name + "</div>") : s.push('<div class="single_item">' + e[n].secondary_course_name + "</div>"), n % 2 == 1 && s.push("</div>");
                return 0 != a && s.push("</div>"), s.join("")
            }), w.registerHelper("parse_course_comment_phrases", function (e, t) {
                for (var i = e.length, s = [], a = i % 2, n = 0; n < e.length; n++) n % 2 == 0 && s.push('<div class="swiper-slide cf">'), t && -1 != t.indexOf(e[n]) ? s.push('<div class="single_item active">' + e[n] + "</div>") : s.push('<div class="single_item">' + e[n] + "</div>"), n % 2 == 1 && s.push("</div>");
                return 0 != a && s.push("</div>"), s.join("")
            });
            var k = window.innerWidth, T = window.innerHeight, j = Number(window.innerHeight / 5), M = {
                    1: "一年级",
                    2: "二年级",
                    3: "三年级",
                    4: "四年级",
                    5: "五年级",
                    6: "六年级",
                    7: "初一",
                    8: "初二",
                    9: "初三",
                    10: "高一",
                    11: "高二",
                    12: "高三"
                }, O = {
                    default: "intelligent_asc_find_teacher_sort_type",
                    1: "distance_from_me_asc_find_teacher_sort_type",
                    2: "good_appraise_desc_find_teacher_sort_type",
                    3: "intelligent_asc_find_teacher_sort_type",
                    4: "lower_price_desc_find_teacher_sort_type",
                    5: "teach_time_desc_find_teacher_sort_type",
                    6: "praise_desc_find_teacher_sort_type",
                    7: "renew_rate_desc_find_teacher_sort_type"
                }, N = {0: "student_home_ost", 1: "teacher_home_ost", 2: "thirdpartplace_ost", 3: "live_ost"},
                S = ".list-wrap-new", q = C();
            return i.View.extend({
                template: m.find_teacher,
                events: {
                    "click #returnBack": "returnBack",
                    "click .js-drop": "show_related_drop",
                    "click .set_address": "show_gaode_address",
                    "click .my_address": "show_gaode_address",
                    "click .icon_address_edit": "show_gaode_address",
                    "click .js_doquestionnaire": "direct_to_doquestionnaire",
                    "click .empty-btn": "direct_to_dofind",
                    "click .banner-close": "close_banner",
                    "click .banner-download": "direct_to_download",
                    "click .js_friend_group": "change_style",
                    "click .navigation_buf_item": "direct_to_filter_list"
                },
                className: "page",
                direct_to_filter_list: function (t) {
                    var i = e(t.currentTarget), s = i.attr("data-filter"), a = C();
                    a.filter_condition = s;
                    var n = base.objectToQuery(a);
                    window.location.href = base.config.mobile + "/list?" + n + window.location.hash
                },
                initialize: function (t) {
                    this.sort_sub_navigation_buf();
                    var s = this;
                    if (q.query) try {
                        var a = JSON.parse(decodeURIComponent(q.query));
                        a.teacher_feature_phrases && (this.teacher_feature_phrases = a.teacher_feature_phrases)
                    } catch (e) {
                    }
                    if (q.filter_condition) try {
                        var n = JSON.parse(decodeURIComponent(q.filter_condition));
                        if (n = JSON.stringify(n)) {
                            var o = {query_json: n, navigation_type: "api_sub_navigation_type"};
                            this.nav_condition = [o]
                        }
                    } catch (e) {
                    }
                    this.parent = t.parent, this.version = t.ver, this.context = t.context, this.options = t, this.city_id = t.city_id, this.grade_id = t.grade_id, this.course_id = t.course_id || f.get("course_id") || null, (isNaN(this.course_id) || "unlimit" == this.course_id) && (this.course_id = null), (isNaN(this.grade_id) || "unlimit" == this.grade_id) && (this.grade_id = null), this.is_bind_scroll = !1, this.show_drop = null, this.show_drop_id = null, this.site_type = null, this.drop_open = !1, this.collection_map = {}, this.options.grade_name = M[this.options.grade_id], this.need_audition = null, this.sex = null, this.has_audio_or_video = null;
                    var r = f.get("select_position");
                    if (i.select_position) {
                        this.options.select_position = i.select_position;
                        s.current_position = i.select_position
                    } else if (r) {
                        this.options.select_position = i.select_position = r;
                        s.current_position = r
                    } else if (i.current_position) {
                        s.current_position = i.current_position
                    } else {
                        s.current_position = f.get("current_position")
                    }
                    this.base_info_model = new i.Model(this.options), this.build_secondary_courses_model();
                    var d = this.secondary_courses_model.get("secondary_courses");
                    d && d.length > 0 && this.base_info_model.set("show_second_nav", !0), webcfg.find_teacher_config && webcfg.find_teacher_config.sub_navigation_buf && 1 == q.snav ? this.build_subnav_data() : this.base_info_model.set("has_nav_filter", !1), this.live_only = 1 == i.queryObj.live_only, !0 === this.live_only ? this.base_info_model.set("live_only", !0) : this.base_info_model.set("live_only", !1), 0 == i.queryObj.isInOpenCity && this.base_info_model.set("hidden_course_select", !0), 1 == this.live_only && this.base_info_model.set("city_name", "城市"), this.$el.html(this.template(this.base_info_model.toJSON())), this.parent.$el.append(this.el), this.has_rendered = !0;
                    var c = this.calculate_map_array();
                    this.sort_all_type = c, this.init_collection(), i.teacher_feature_phrases || this.get_teacher_feature_phrases(), this.get_district_list();
                    var _ = webcfg.courses || [];
                    if (i.course_grade[s.city_id] = {grade_course_list: {courses: _}}, null == s.course_id) s.$("#course-list-wrap .ellipsis").html("不限"); else for (var h = 0; h < _.length; h++) if (_[h].course_id == s.course_id) {
                        s.$("#course-list-wrap .ellipsis").html(_[h].course_name);
                        break
                    }
                    return i.default_address || this.loadMap(), i.select_position ? this.check_address(i.select_position.detail_address) : i.loadedMap ? this.mapInit() : this.loadMap(), e(".find_teacher_mask").off("click").on("click", function () {
                        if (1 == s.drop_open) return s.show_drop == s.audition_view ? (s.show_drop.render(), s.show_drop.bind_swiper()) : s.show_drop != s.secondary_courses_view && s.show_drop != s.course_comment_phrases_view && s.show_drop != s.teach_experience_phrases_view || s.show_drop.render(), s.closeEvent(), s.show_drop.hide(), s.show_drop = null, s.drop_open = !1, s.show_drop_id = null, !1
                    }), this
                },
                sort_sub_navigation_buf: function () {
                    return 1 != i.queryObj.live_only && (!!webcfg.find_teacher_config && void(webcfg.find_teacher_config.sub_navigation_buf && (webcfg.find_teacher_config.sub_navigation_buf = t.sortBy(webcfg.find_teacher_config.sub_navigation_buf, function (e) {
                        return -e.order_number
                    }))))
                },
                build_subnav_data: function () {
                    if (webcfg.find_teacher_config && webcfg.find_teacher_config.sub_navigation_buf && 1 == q.snav && !i.queryObj.filter_condition) {
                        var e = this, s = t.filter(webcfg.find_teacher_config.sub_navigation_buf, function (t) {
                            return t.course_id == e.course_id
                        });
                        s || (s = []), s.length < 4 ? (this.base_info_model.set("has_nav_filter", !1), this.base_info_model.set("sub_navigation_buf", null)) : (this.base_info_model.set("has_nav_filter", !0), this.base_info_model.set("sub_navigation_buf", s), s.length >= 8 && this.base_info_model.set("has_two_nav_filter", !0)), this.final_handle_ui()
                    }
                },
                final_handle_ui: function () {
                    if (this.has_rendered) {
                        var e = this.base_info_model.get("has_nav_filter");
                        if (this.$(".sub_navigation_buf_total_wrap").remove(), e) {
                            var t = this.base_info_model.get("sub_navigation_buf"),
                                i = w.helpers.parse_sub_navigation_buf(t);
                            this.$(".padding_bg_wrap").before(i), t.length >= 8 ? this.$(".list-wrap-new").removeClass("has_nav_filter has_two_nav_filter").addClass("has_two_nav_filter") : this.$(".list-wrap-new").removeClass("has_nav_filter has_two_nav_filter").addClass("has_nav_filter")
                        } else this.$(".list-wrap-new").removeClass("has_nav_filter has_two_nav_filter")
                    }
                },
                change_extra_type: function (t) {
                    var i = e(t.currentTarget);
                    i.hasClass("active") ? i.removeClass("active") : i.addClass("active"), this.calculate_audition_view_change()
                },
                calculate_audition_view_change: function () {
                    var t = this.$(".js-female"), i = t.hasClass("active");
                    this.sex = i ? 0 : null, e(".js-teacherexperience").hasClass("active") ? this.school_age_range = {lower: 10} : this.school_age_range = null, this.$(".js-tag-audition").hasClass("active") ? this.need_audition = !0 : this.need_audition = null, this.$(".js-tag-sitetype").hasClass("active") ? this.site_type = 0 : this.site_type = null, this.audition_view && (this.audition_view.model.set("sex", this.sex, {silent: !0}), this.audition_view.model.set("site_type", this.site_type, {silent: !0}), this.audition_view.model.set("need_audition", this.need_audition, {silent: !0}), this.audition_view.model.set("school_age_range", this.school_age_range, {silent: !0}), this.audition_view.render(), this.audition_view.bind_swiper()), this.change_order_type()
                },
                get_teacher_feature_phrases: function (e) {
                    i.ajax({
                        url: base.config.apicdn + base.api_map.official_main,
                        type: "GET",
                        dataType: "JSON",
                        success: function (t) {
                            i.open_city_info = t.openCities, i.teacher_feature_phrases = t.searchFeatures, !!e && e()
                        }
                    })
                },
                get_district_list: function (e) {
                    i.ajax({
                        url: base.config.apicdn + "/api/cpb/v1/config/city_districts_by_id.json?city_id=" + this.city_id,
                        type: "GET",
                        dataType: "JSON",
                        success: function (t) {
                            i.districts = t.districts, !!e && e()
                        }
                    })
                },
                calculate_map_array: function () {
                    var e = this.city_id + "_" + this.grade_id + "_";
                    return this.course_id ? e += this.course_id : e += "null", this.current_position ? e += "_" + this.current_position.latitude + this.current_position.longitude : e += "_null", this.district_id_list ? e += "_" + this.district_id_list.toString() : e += "_null", e += "_" + (O[this.sort_type] || O.default), null != this.sex ? e += "_" + this.sex : e += "_unknown", null != this.site_type ? e += "_" + this.site_type : e += "_null", this.school_age_range ? e += "_" + JSON.stringify(this.school_age_range) : e += "_null", this.need_audition ? e += "_" + this.need_audition : e += "_null", this.has_audio_or_video ? e += "_" + this.has_audio_or_video : e += "_null", this.support_friend_group ? e += "_" + this.support_friend_group : e += "_null", this.teacher_badges ? e += "_" + this.teacher_badges.toString() : e += "_null", this.sub_courses_phrases ? e += "_" + this.sub_courses_phrases.toString() : e += "_null", this.has_course_package ? e += "_" + this.has_course_package.toString() : e += "_null", this.is_support_official_package ? e += "_" + this.is_support_official_package.toString() : e += "_null", this.has_famous_school_students ? e += "_" + this.has_famous_school_students.toString() : e += "_null", this.sort_except_type = e, this.course_comment_phrases ? e += "_" + this.course_comment_phrases.toString() : e += "_null", this.teach_experience_phrases ? e += "_" + this.teach_experience_phrases.toString() : e += "_null", this.characteristics_phrases ? e += "_" + this.characteristics_phrases.toString() : e += "_null", this.nav_condition ? e += "_nav_condition" : e += "_null", e
                },
                close_banner: function (e) {
                    this.$(".banner-download").addClass("hidden"), this.$(".has_download_banner").removeClass("has_download_banner");
                    var t = new Date((new Date).getTime() + 9e5);
                    return f.set("ignore_download_banner", 1, null, null, t), !1
                },
                direct_to_download: function (t) {
                    if (e(t.srcElement).hasClass("banner-close")) return !1;
                    base.direct_to_app("student")
                },
                returnBack: function () {
                    1 == i.queryObj.snav ? window.history.back() : window.location.href = base.config.mobile
                },
                destroy: function () {
                },
                show_gaode_address: function (t) {
                    e(".set_address").addClass("hidden"),
                        this.district_id_list = null, e(t.target).hasClass("set_address") && (e(t.target).prev().hasClass("all_way") && (this.site_type = null, self.$("#phrase_enum").html('<div>不限<em class="arrow-down"></em></div>')), e(t.target).prev().hasClass("teacher") && (this.site_type = "0", self.$("#phrase_enum").html('<div>老师上门<em class="arrow-down"></em></div>'))), this.show_drop && (this.show_drop.hide(), this.closeEvent(), this.show_drop = null, this.drop_open = !1, this.show_drop_id = null);
                    var s = this.get_check_address();
                    if (f.get("user")) {
                        var a = {};
                        a.winW = k, a.winH = T, "正在获取您的具体位置" != s && "所选位置不在本市" != s && (a.address = s), this.student_address ? this.student_address.show() : (this.student_address = new y(a), this.student_address.listenTo(i, "find_select_address", this.change_geo_point.bind(this)), this.student_address.listenTo(i, "new_add_address", this.new_add_address.bind(this)), e("body").append(this.student_address.el), e(".teacher-list").addClass("hidden"))
                    } else self.add_address ? self.add_address.show() : (self.add_address = new b, self.add_address.listenTo(i, "find_select_address", this.change_geo_point.bind(this)), e("body").append(self.add_address.el), e(".teacher-list").addClass("hidden"))
                },
                new_add_address: function () {
                    var t = {};
                    t.winW = k, t.winH = T;
                    var s = this.get_check_address();
                    "正在获取您的具体位置" != s && "所选位置不在本市" != s && (t.address = s), this.student_address.remove(), this.student_address = new y(t), this.student_address.listenTo(i, "find_select_address", this.change_geo_point.bind(this)), this.student_address.listenTo(i, "new_add_address", this.new_add_address.bind(this)), e("body").append(this.student_address.el), e(".teacher-list").addClass("hidden")
                },
                direct_to_dofind: function () {
                    var e = this.city_id, t = this.grade_id, i = this.course_id,
                        s = "/dofind#dofind/" + e + "/" + t + "/" + i;
                    if (s += "/" + this.sex, this.site_type && (s += "/" + this.site_type), base.isWeixin()) {
                        var a = f.get("weixin_id");
                        if (!a || a && 1 == a.is_need_bind_qingqing_acount) {
                            var n = base.config.mobile + s;
                            base.weixin_auth(n)
                        } else window.location.href = s
                    } else window.location.href = s
                },
                direct_to_doquestionnaire: function () {
                    var e = base.config.mobile + "/qingqing_quiz";
                    f.get("user") ? window.location.href = e : base.common_login(e)
                },
                change_geo_point: function (e, t, s) {
                    if (null == e) {
                        this.current_position = null;
                        var a = s.get("location");
                        i.select_position = {
                            longitude: a.lng,
                            latitude: a.lat,
                            detail_address: "所选位置不在本市",
                            origin_address: t,
                            geo_city_code: s.get("geo_city_code")
                        }, f.set("select_position", i.select_position), this.need_choose_address = !0, this.district_view.$el.find(".my_address").removeClass("hidden"), this.district_view.$el.find(".address-edit span").html("所选位置不在本市");
                        this.$(S);
                        this.change_order_type()
                    } else {
                        if (this.need_choose_address = !1, e.geo_point) var a = e.geo_point; else var a = e.location;
                        this.current_position = {
                            longitude: a.lng || a.longitude,
                            latitude: a.lat || a.latitude,
                            detail_address: t,
                            origin_address: t
                        }, i.select_position = this.current_position, f.set("select_position", this.current_position), this.district_view.$el.find(".my_address").removeClass("hidden"), this.district_view.$el.find(".address-edit span").html(t), this.change_order_type()
                    }
                },
                closeOnTouchMove: function () {
                    document.body.addEventListener("touchmove", this.unableTouch, !1)
                },
                openOnTouchMove: function () {
                    document.body.removeEventListener("touchmove", this.unableTouch, !1)
                },
                unableTouch: function (e) {
                    e.preventDefault()
                },
                show_related_drop: function (t) {
                    var s = e(t.currentTarget), a = s.attr("id"), o = this;
                    if (1 == this.drop_open) {
                        if (this.closeEvent(), this.show_drop_id == a) return "freeaudition_choose" == a ? (this.show_drop.render(), this.show_drop.bind_swiper()) : "secondary_courses" != a && "teaching_characteristic" != a && "teaching_experience" != a || (this.show_drop.render(), this.show_drop.bind_swiper()), this.show_drop.hide(), this.show_drop = null, this.drop_open = !1, this.show_drop_id = null, !1;
                        "freeaudition_choose" == a ? "phrase_enum" != this.show_drop_id && (this.show_drop.render(), this.show_drop.bind_swiper()) : "secondary_courses" != a && "teaching_characteristic" != a && "teaching_experience" != a || this.show_drop.render(), this.show_drop.hide()
                    }
                    if ("phrase_enum" == this.show_drop_id && this.audition_view && (this.audition_view.render(), this.audition_view.bind_swiper()), "sort_enum" == a) {
                        if (this.sort_view) null == this.current_position ? this.sort_view.$(".js-distance").addClass("hidden") : this.sort_view.$(".js-distance").removeClass("hidden"), this.sort_view.$el.removeClass("hidden"), this.sort_view.render(), this.sort_view.bind_swiper(); else {
                            var h = {type: this.sort_type || "default"};
                            this.current_position && 1 != this.live_only ? h.show_distance = !0 : h.show_distance = !1;
                            var l = new i.Model(h);
                            this.sort_view = new n({model: l}), this.$(".search-drop-wrap").append(this.sort_view.render().el), this.sort_view.bind_swiper();
                            var o = this;
                            this.sort_view.listenTo(l, "changetype", function (e, t) {
                                o.sort_type = e, o.$("#sort_enum").html("<div>" + t + '<em class="arrow-down "></em></div>'), o.change_order_type()
                            }), this.sort_view.listenTo(l, "hide", function () {
                                o.closeEvent(), o.drop_open = !1
                            })
                        }
                        this.show_drop = this.sort_view, this.show_drop_id = "sort_enum", this.openEvent(s)
                    } else if ("phrase_enum" == a) {
                        if (this.district_view) this.district_view.$el.removeClass("hidden"), this.district_view.destroy_swiper(), this.district_view.bind_swiper(); else {
                            var l = new i.Model({type: this.site_type || "default"});
                            l.set("districts", i.districts), this.init_district_view_address && l.set("address", this.init_district_view_address), this.district_view = new _({model: l}), this.$(".search-drop-wrap").append(this.district_view.render().el), this.district_view.bind_swiper();
                            var o = this;
                            this.district_view.listenTo(l, "changetype", function (t, i, s) {
                                o.district_id_list = t, o.site_type = i.get("site_type"), o.audition_view && o.audition_view.model.set("site_type", null), o.$("#phrase_enum").html("<div>" + s + '<em class="arrow-down"></em></div>'), e("#site_type_live").removeClass("active"), o.change_order_type()
                            }), this.district_view.listenTo(l, "changetype_site", function (e, t) {
                                o.site_type = e.get("site_type"), o.$("#phrase_enum").html("<div>" + t + '<em class="arrow-down"></em></div>'), "3" == o.site_type ? o.audition_view && o.audition_view.model.set("site_type", 3) : o.audition_view && o.audition_view.model.set("site_type", null), o.$(".single-item-wrap-addr .single-item").removeClass("active"), o.district_id_list = null, o.change_order_type()
                            }), this.district_view.listenTo(l, "hide", function () {
                                o.closeEvent(), o.drop_open = !1
                            })
                        }
                        this.show_drop = this.district_view, this.show_drop_id = "phrase_enum", this.openEvent(s)
                    } else if ("grade_id_enum" == a) {
                        if (this.grade_view) this.grade_view.$el.removeClass("hidden"), this.grade_view.render(), this.grade_view.bind_swiper(); else {
                            var l = new i.Model({type: this.grade_id});
                            this.grade_view = new r({model: l}), this.$(".search-drop-wrap").append(this.grade_view.render().el), this.grade_view.bind_swiper();
                            var o = this;
                            this.grade_view.listenTo(l, "changetype", function (e, t) {
                                o.grade_id = "default" == e ? null : e, o.$("#grade_id_enum").html("<div>" + t + '<em class="arrow-down"></em></div>'), o.change_order_type()
                            }), this.grade_view.listenTo(l, "hide", function () {
                                o.closeEvent(), o.drop_open = !1
                            })
                        }
                        this.show_drop = this.grade_view, this.show_drop_id = "grade_id_enum", this.openEvent(s)
                    } else if ("freeaudition_choose" == a) {
                        if (this.audition_view) this.audition_view.$el.removeClass("hidden"), this.audition_view.render(), this.audition_view.bind_swiper(); else {
                            var h = {};
                            null != this.sex && (h.sex = this.sex), null != this.need_audition && (h.need_audition = this.need_audition), null != this.site_type && (h.site_type = this.site_type), this.school_age_range && (h.school_age_range = this.school_age_range), !0 === this.live_only && (h.live_only = !0);
                            var l = new i.Model(h);
                            l.set("all_phrases", i.characteristics_phrases), this.audition_view = new c({model: l}), this.$(".search-drop-wrap").append(this.audition_view.render().el), this.audition_view.bind_swiper();
                            var o = this;
                            this.audition_view.listenTo(l, "changetype", function (t) {
                                o.sex = t.get("sex"), 0 == o.sex ? o.$(".js-female").addClass("active") : o.$(".js-female").removeClass("active"), o.site_type = t.get("site_type"), 3 == o.site_type && (e(".oneline-choose").removeClass("active"), e(".online_live").addClass("active"), e(".set_address").addClass("hidden"), e(".oneline-choose").removeClass("border_bottom"), e(".single-item-wrap-addr").addClass("hidden"), e("#phrase_enum").html('<div>在线课<em class="arrow-down"></em></div>')), o.characteristics_phrases = t.get("characteristics_phrases"), o.support_friend_group = t.get("support_friend_group"), o.need_audition = t.get("need_audition"), o.has_audio_or_video = t.get("has_audio_or_video"), o.has_course_package = t.get("has_course_package"), o.is_support_official_package = t.get("is_support_official_package"), o.has_famous_school_students = t.get("has_famous_school_students"), o.need_audition ? o.$(".js-tag-audition").addClass("active") : o.$(".js-tag-audition").removeClass("active"), o.school_age_range = t.get("school_age_range"), o.school_age_range && 10 == o.school_age_range.lower ? o.$(".js-teacherexperience").addClass("active") : o.$(".js-teacherexperience").removeClass("active"), o.teacher_badges = t.get("teacher_badges"), o.school_age_range = t.get("school_age_range"), o.change_order_type()
                            }), this.audition_view.listenTo(l, "hide", function () {
                                o.closeEvent(), o.drop_open = !1
                            })
                        }
                        this.show_drop = this.audition_view, this.show_drop_id = "freeaudition_choose", this.openEvent(s)
                    } else if ("course-list-wrap" == a) if (this.courses_view) this.show_drop = this.courses_view, this.show_drop_id = "course-list-wrap", this.openEvent(s), this.courses_view.$el.removeClass("hidden"); else {
                        var m = i.course_grade[this.city_id];
                        m ? o.render_course_view(s) : i.ajax({
                            url: base.config.apicdn + "/api/cpb/v2/config/grade_course_list.json?city_id=" + this.city_id,
                            type: "GET",
                            dataType: "JSON",
                            success: function (e) {
                                i.course_grade[o.city_id] = e, o.render_course_view(s)
                            }
                        })
                    } else if ("secondary_courses" == a) {
                        if (this.secondary_courses_view) this.secondary_courses_view.$el.removeClass("hidden"), this.secondary_courses_view.bind_swiper(); else {
                            var h = {secondary_courses: this.build_secondary_courses_model()},
                                l = this.secondary_courses_model;
                            this.secondary_courses_view = new p({model: l}), this.$(".second_feature_wrap").append(this.secondary_courses_view.render().el), this.secondary_courses_view.bind_swiper(), this.secondary_courses_view.listenTo(l, "changetype", function (e) {
                                var t = e.get("sub_courses_phrases");
                                o.sub_courses_phrases = null == t ? null : t, o.change_order_type()
                            })
                        }
                        this.show_drop = this.secondary_courses_view, this.show_drop_id = "secondary_courses", this.openEvent(s)
                    } else if ("teaching_characteristic" == a) {
                        if (this.course_comment_phrases_view) this.course_comment_phrases_view.$el.removeClass("hidden"), this.course_comment_phrases_view.bind_swiper(); else {
                            var l = x[this.sort_except_type];
                            this.course_comment_phrases_view = new u({model: l}), this.course_comment_phrases_view.model = l, this.$(".second_feature_wrap").append(this.course_comment_phrases_view.render().el), this.course_comment_phrases_view.bind_swiper(), this.course_comment_phrases_view.listenTo(this.course_comment_phrases_view.model, "changetype", function (e) {
                                var t = e.get("select_course_comment_phrases");
                                o.course_comment_phrases = null == t ? null : t, o.change_order_type()
                            })
                        }
                        this.show_drop = this.course_comment_phrases_view, this.show_drop_id = "teaching_characteristic", this.openEvent(s)
                    } else if ("teaching_experience" == a) {
                        if (this.teach_experience_phrases_view) this.teach_experience_phrases_view.$el.removeClass("hidden"), this.teach_experience_phrases_view.bind_swiper(); else {
                            var l = $[this.sort_except_type];
                            this.teach_experience_phrases_view = new g({model: l}), this.teach_experience_phrases_view.model = l, this.$(".second_feature_wrap").append(this.teach_experience_phrases_view.render().el), this.teach_experience_phrases_view.bind_swiper(), this.teach_experience_phrases_view.listenTo(this.teach_experience_phrases_view.model, "changetype", function (e) {
                                var t = e.get("select_teach_experience_phrases");
                                o.teach_experience_phrases = null == t ? null : t, o.change_order_type()
                            })
                        }
                        this.show_drop = this.teach_experience_phrases_view, this.show_drop_id = "teaching_experience", this.openEvent(s)
                    } else if ("city_enum" == a) {
                        if (this.city_view) this.city_view.$el.removeClass("hidden"); else {
                            var l = new i.Model({type: "default", cities: webcfg.cities});
                            this.city_view = new d({model: l}), this.$(".search-drop-wrap").append(this.city_view.render().el), this.city_view.bind_swiper();
                            var o = this;
                            this.city_view.listenTo(l, "changetype", function (e, t) {
                                o.select_city_id = o.city_id = "default" == e ? null : e, o.$("#city_enum").html("<div>" + t + '<em class="arrow-down"></em></div>'), o.courses_view && (o.courses_view.remove(), o.courses_view = null), o.change_order_type()
                            }), this.city_view.listenTo(l, "hide", function () {
                                o.closeEvent(), o.drop_open = !1
                            })
                        }
                        this.show_drop = this.city_view, this.show_drop_id = "city_enum", this.openEvent(s)
                    }
                },
                render_course_view: function (e) {
                    var s = new i.Model, a = i.course_grade[this.city_id],
                        n = this.collection_map[this.sort_all_type].course_aggs;
                    if (n && 1 == this.live_only) {
                        var o = t.filter(a.grade_course_list.courses, function (e) {
                            return -1 != n.indexOf(e.course_id)
                        });
                        a.grade_course_list.courses = o
                    }
                    this.courses_view = new l({
                        courses: a,
                        model: s
                    }), this.$(".course-view-wrap").append(this.courses_view.render().el);
                    var r = this;
                    this.courses_view.listenTo(s, "changetype", function (e, t) {
                        r.$("#course-list-wrap .ellipsis").html(t), f.set("course_id", e), r.course_id = "unlimit" == e ? null : Number(e), r.build_secondary_courses_model(!0), r.build_subnav_data(), r.change_order_type()
                    }), this.courses_view.listenTo(s, "hide", function () {
                        r.closeEvent(), r.drop_open = !1
                    }), this.show_drop = this.courses_view, this.show_drop_id = "course-list-wrap", this.openEvent(e)
                },
                change_style: function () {
                    if (this.$(".secondary_courses_wrap").addClass("hidden"), this.audition_view) this.re_audition(); else {
                        var e = {};
                        null != this.sex && (e.sex = this.sex), null != this.need_audition && (e.need_audition = this.need_audition), null != this.site_type && (e.site_type = this.site_type), this.school_age_range && (e.school_age_range = this.school_age_range);
                        var t = new i.Model(e);
                        t.set("all_phrases", i.teacher_feature_phrases), this.audition_view = new c({model: t}), this.$(".search-drop-wrap").append(this.audition_view.render().el), this.audition_view.bind_swiper();
                        var s = this;
                        this.audition_view.listenTo(t, "changetype", function (e) {
                            s.sex = e.get("sex"), 0 == s.sex ? s.$(".js-female").addClass("active") : s.$(".js-female").removeClass("active"), s.site_type = e.get("site_type"), 0 == s.site_type ? s.$(".js-tag-sitetype").addClass("active") : s.$(".js-tag-sitetype").removeClass("active"), s.course_comment_phrases = e.get("course_comment_phrases"), s.support_friend_group = e.get("support_friend_group"), s.need_audition = e.get("need_audition"), s.has_audio_or_video = e.get("has_audio_or_video"), s.has_course_package = e.get("has_course_package"), s.is_support_official_package = e.get("is_support_official_package"), s.has_famous_school_students = e.get("has_famous_school_students"), s.need_audition ? s.$(".js-tag-audition").addClass("active") : s.$(".js-tag-audition").removeClass("active"), s.school_age_range = e.get("school_age_range"), s.school_age_range && 10 == s.school_age_range.lower ? s.$(".js-teacherexperience").addClass("active") : s.$(".js-teacherexperience").removeClass("active"), s.teacher_badges = e.get("teacher_badges"), s.school_age_range = e.get("school_age_range"), s.change_order_type()
                        }), this.audition_view.listenTo(t, "hide", function () {
                            s.closeEvent(), s.drop_open = !1
                        }), this.re_audition()
                    }
                    this.show_drop = this.audition_view, this.show_drop_id = "freeaudition_choose"
                },
                re_audition: function () {
                    e("#is_friend_group").trigger("click"), e("#is_benefit").trigger("click"), e(".js-confirm").trigger("click")
                },
                build_secondary_courses_model: function (e) {
                    var s = this;
                    if (null == this.course_id) var a = webcfg.secondary_courses; else var a = t.filter(webcfg.secondary_courses, function (e) {
                        return e.course_id == s.course_id
                    });
                    this.secondary_courses_model || (this.secondary_courses_model = new i.Model({})), 0 == a.length ? this.$(".js_secondary_courses").addClass("hidden") : this.$(".js_secondary_courses").removeClass("hidden"), this.secondary_courses_model.set("secondary_courses", a), this.secondary_courses_model.set("sub_courses_phrases", null), e && this.secondary_courses_view && this.secondary_courses_view.render()
                },
                openEvent: function (t) {
                    t.addClass("green"), t.find(".arrow-down").addClass("rotate"), this.closeOnTouchMove(), e(".popup-mask").removeClass("hidden"), this.drop_open = !0
                },
                closeEvent: function () {
                    this.drop_open = !1, this.openOnTouchMove(), e(".green").removeClass("green"), this.check_remove_green(), this.$(".arrow-down").removeClass("rotate"), e(".popup-mask").addClass("hidden")
                },
                check_remove_green: function () {
                    if (this.secondary_courses_model) {
                        this.secondary_courses_model.get("sub_courses_phrases") && this.$(".js_secondary_courses").addClass("green")
                    }
                    if (x[this.sort_except_type]) {
                        x[this.sort_except_type].get("select_course_comment_phrases") && this.$(".js_characteristic_phrase_aggs").addClass("green")
                    } else !this.collection_map[this.sort_all_type].course_comment_phrase_aggs && this.course_comment_phrases && this.$(".js_characteristic_phrase_aggs").addClass("green");
                    if ($[this.sort_except_type]) {
                        $[this.sort_except_type].get("select_teach_experience_phrases") && this.$(".js_experience_phrase_aggs").addClass("green")
                    } else !this.collection_map[this.sort_all_type].teach_content_phrase_aggs && this.teach_experience_phrases && this.$(".js_experience_phrase_aggs").addClass("green")
                },
                change_order_type: function () {
                    this.closeEvent(), this.sort_all_type = this.calculate_map_array(), this.collection_map[this.sort_all_type] ? this.renderList() : this.init_collection()
                },
                init_collection: function () {
                    var e = this.sort_all_type, t = {count: Number(6), sort_type: O[this.sort_type] || O.default};
                    0 != i.queryObj.isInOpenCity ? (1 != i.queryObj.live_only && (t.city_ids = [Number(this.city_id)], t.city_id = Number(this.city_id)), 1 == i.queryObj.live_only && (this.site_type = "3")) : 1 == i.queryObj.live_only && (t.support_live_only = !0), this.select_city_id && (this.city_id = Number(this.select_city_id), t.city_ids = [Number(this.city_id)], t.city_id = Number(this.city_id)), this.grade_id && (t.grade_id = Number(this.grade_id)), this.course_id && (t.course_id = Number(this.course_id)), null != this.need_audition && (t.need_audition = this.need_audition), null != this.has_audio_or_video && (t.has_audio_or_video = this.has_audio_or_video), this.current_position && this.current_position.detail_address && "所选位置不在本市" != this.current_position.detail_address && (t.geo_point = this.current_position), null != this.sex && (t.sex = this.sex), null != this.site_type && (t.site_types = N[this.site_type]), this.district_id_list && (t.district_id_list = this.district_id_list), this.school_age_range && (t.school_age_range = this.school_age_range), this.support_friend_group && (t.support_friend_group = this.support_friend_group), this.course_comment_phrases && (t.course_comment_phrases = this.course_comment_phrases), this.teacher_badges && (t.teacher_badges = this.teacher_badges), this.teacher_feature_phrases && (t.teacher_feature_phrases = this.teacher_feature_phrases), this.sub_courses_phrases && (t.sub_courses_phrases = this.sub_courses_phrases), this.course_comment_phrases && (t.course_comment_phrases = this.course_comment_phrases), this.teach_experience_phrases && (t.teach_experience_phrases = this.teach_experience_phrases), this.has_course_package && (t.has_course_package = this.has_course_package), this.is_support_official_package && (t.is_support_official_package = this.is_support_official_package), this.has_famous_school_students && (t.has_famous_school_students = this.has_famous_school_students), this.characteristics_phrases && (t.teach_content_phrases = this.characteristics_phrases), this.nav_condition && (t.nav_condition = this.nav_condition), this.collection_map[e] = new s(t), this.listenTo(this.collection_map[e], "first_read", this.renderList), this.listenTo(this.collection_map[e], "add_more", this.append_item), this.listenTo(this.collection_map[e], "error", this.showError), this.collection_map[e].init(), 0 == this.is_bind_scroll && (this.is_bind_scroll = !0, this.bind_scroll())
                },
                bind_scroll: function () {
                    var t = (e(document.body), window.innerHeight), i = this, s = this.$(".list-wrap-new");
                    window.addEventListener("scroll", function (e) {
                        var a = s.height(), n = document.body.scrollTop || document.documentElement.scrollTop || 0;
                        i.check_second_nav_position(), t + j + n > a && i.collection_map[i.sort_all_type].add_item()
                    }, !1), window.addEventListener("touchmove", function (e) {
                        var a = s.height(), n = document.body.scrollTop || document.documentElement.scrollTop || 0;
                        i.check_second_nav_position(), t + j + n > a && i.collection_map[i.sort_all_type].add_item()
                    }, !1)
                },
                calculate_sub_nav_height: function () {
                    this.$(".sub_navigation_buf_total_wrap").css("height", "auto"), this.sub_navigation_buf_total_wrap_height = this.$(".sub_navigation_buf_total_wrap").height()
                },
                check_second_nav_position: function () {
                    if (this.sub_navigation_buf_total_wrap_height) {
                        var e = document.body.scrollTop || document.documentElement.scrollTop || 0,
                            t = Math.min(e, this.sub_navigation_buf_total_wrap_height);
                        this.$(".sub_navigation_buf_total_wrap").animate({height: this.sub_navigation_buf_total_wrap_height - t}, "ease-in-out")
                    }
                },
                check_second_nav: function () {
                    0 != this.secondary_courses_model.get("secondary_courses").length || x[this.sort_except_type] || $[this.sort_except_type] ? this.$(".list-wrap-new").addClass("has_second_nav") : this.$(".list-wrap-new").removeClass("has_second_nav")
                },
                renderList: function () {
                    var t = this, s = this.collection_map[this.sort_all_type].course_comment_phrase_aggs;
                    !x[this.sort_except_type] && s && (x[this.sort_except_type] = new i.Model({course_comment_phrases: s})), s ? this.$(".js_characteristic_phrase_aggs").removeClass("hidden") : this.course_comment_phrases ? this.$(".js_characteristic_phrase_aggs").addClass("green") : this.$(".js_characteristic_phrase_aggs").addClass("hidden").removeClass("green"), this.course_comment_phrases_view && x[this.sort_except_type] && (this.course_comment_phrases_view.model = x[this.sort_except_type], this.course_comment_phrases && this.course_comment_phrases_view.model.set("select_course_comment_phrases", this.course_comment_phrases), this.course_comment_phrases_view.stopListening(), this.course_comment_phrases_view.listenTo(this.course_comment_phrases_view.model, "changetype", function (e) {
                        var i = e.get("select_course_comment_phrases");
                        t.course_comment_phrases = null == i ? null : i, t.change_order_type()
                    }), this.course_comment_phrases_view.render());
                    var n = this.collection_map[this.sort_all_type].teach_content_phrase_aggs;
                    !$[this.sort_except_type] && n && ($[this.sort_except_type] = new i.Model({teach_experience_phrases: n})), n ? this.$(".js_experience_phrase_aggs").removeClass("hidden") : this.teach_experience_phrases ? this.$(".js_characteristic_phrase_aggs").addClass("green") : this.$(".js_experience_phrase_aggs").addClass("hidden").removeClass("green"), this.teach_experience_phrases_view && $[this.sort_except_type] && (this.teach_experience_phrases_view.model = $[this.sort_except_type], this.teach_experience_phrases_view && this.teach_experience_phrases_view.model.set("select_teach_experience_phrases", this.teach_experience_phrases), this.teach_experience_phrases_view.stopListening(), this.teach_experience_phrases_view.listenTo(this.teach_experience_phrases_view.model, "changetype", function (e) {
                        var i = e.get("select_teach_experience_phrases");
                        t.teach_experience_phrases = null == i ? null : i, t.change_order_type()
                    }), this.teach_experience_phrases_view.render()), this.check_second_nav(), this.$(".dofind-btn").removeClass("hidden");
                    var t = this, o = t.$(S);
                    o.html(""), 0 == this.collection_map[this.sort_all_type].length ? o.html('<div class="empty-item"></div>') : (this.collection_map[this.sort_all_type].forEach(function (e, i) {
                        o.append(new a({model: e, parent: t}).render().el)
                    }), this.append_advertise_banner()), e(window).scrollTop(0), this.calculate_sub_nav_height()
                },
                append_item: function (e) {
                    var t = this;
                    e.forEach(function (e, i) {
                        t.$(S).append(new a({model: e, parent: t}).render().el)
                    })
                },
                append_advertise_banner: function () {
                    0 != i.queryObj.isInOpenCity && this.$(S).append('<div class="advertise_banner js_doquestionnaire"><img src="' + i.mapImages.gethelp + '" alt="" /></div>')
                },
                loadMap: function () {
                    var e = document.getElementsByTagName("head")[0], t = document.createElement("script");
                    t.type = "text/javascript";
                    var s = this;
                    t.onload = function () {
                        setTimeout(function () {
                            i.loadedMap = !0, s.mapInit()
                        }, 300)
                    }, t.src = "https://webapi.amap.com/maps?v=1.3&key=" + base.mapkey + "&plugin=AMap.Autocomplete", e.appendChild(t)
                },
                mapInit: function () {
                    var e = this, t = setInterval(function () {
                        AMap && AMap.Map && (clearInterval(t), e.map = new AMap.Map("find_teacher_container"), e.map.on("complete", function () {
                            var t = e.current_position, t = "";
                            t ? t.detail_address ? (e.init_collection(), e.check_address(t.detail_address)) : e.get_geocoder() : e.map.plugin("AMap.Geolocation", function () {
                                geolocation = new AMap.Geolocation({
                                    enableHighAccuracy: !0,
                                    timeout: 1e4
                                }), geolocation.getCurrentPosition(), AMap.event.addListener(geolocation, "complete", function (t) {
                                    var s = [t.position.getLng(), t.position.getLat()];
                                    e.current_position = i.current_position = {
                                        longitude: Number(s[0]),
                                        latitude: Number(s[1])
                                    }, i.default_address = t, e.get_geocoder()
                                }), AMap.event.addListener(geolocation, "error", function () {
                                    e.current_position = null, e.check_address("获取地址失败")
                                })
                            })
                        }))
                    }, 300)
                },
                check_address: function (e) {
                    this.district_view ? this.district_view.$el.find(".address-edit span").html(e) : this.init_district_view_address = e
                },
                get_check_address: function () {
                    return this.district_view ? e.trim(this.district_view.$el.find(".address-edit span").html()) : this.init_district_view_address
                },
                get_geocoder: function () {
                    var e, t = this.current_position, s = new AMap.LngLat(t.longitude, t.latitude), a = this;
                    this.map.plugin(["AMap.Geocoder"], function () {
                        e = new AMap.Geocoder({
                            radius: 1e3,
                            extensions: "all"
                        }), AMap.event.addListener(e, "complete", function (e) {
                            if ("complete" == e.type && "OK" == e.info) {
                                var t = e.regeocode.addressComponent.citycode, s = e.regeocode.formattedAddress;
                                i.open_city_info;
                                i.open_city_info ? a.filter_city(i.open_city_info, t, s) : i.ajax({
                                    url: base.config.apicdn + "/api/cpb/v1/config/open_citys.json",
                                    type: "GET",
                                    dataType: "JSON",
                                    success: function (e) {
                                        i.open_city_info = e.cities, a.filter_city(e.cities, t, s)
                                    }
                                })
                            } else a.check_address("获取地址失败"), a.current_position = null
                        }), e.getAddress(s)
                    })
                },
                filter_city: function (e, s, a) {
                    var n = this, o = t.find(e, function (e) {
                        return "0" + e.gaode_city_code == s
                    });
                    if (o && o.city_id == n.city_id) {
                        var r = a;
                        i.current_position = n.current_position, i.select_position = {
                            longitude: this.current_position.longitude,
                            latitude: this.current_position.latitude,
                            detail_address: r,
                            origin_address: r,
                            geo_city_code: s
                        }, f.set("current_position", this.current_position), f.set("select_position", i.select_position), n.current_position = i.select_position, n.check_address(r)
                    } else n.check_address("所选位置不在本市"), n.current_position = null
                },
                render: function () {
                    return this.$el.html(this.template(this.model.toJSON())), this
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1300: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1046), i(1048), i(1023), i(1), i(7), i(16)], void 0 !== (a = function (e, t, i, s, a, n, o, r, d) {
            return i.View.extend({
                className: "certWrap com-wrap fixed-pop teacher_head_header address_select",
                template: n.find_select_address,
                events: {
                    "click #returnBack": "returnBack",
                    "click .model-btn": "saveBack",
                    "input #searchInput": "fetchAddress",
                    "doubleTap #searchInput": "confirmRemove",
                    "click .icon-close": "confirmRemove"
                },
                initialize: function (e) {
                    this.select_address = null, this.options = e, this.collection = new s, this.listenTo(this.collection, "get_complete_data", this.showSearchVal), this.render(), i.open_city_info ? this.city_id_info = i.open_city_info : this.get_open_city_info(), this.user_city_obj = i.user_city_obj || r.get("user_city_obj"), this.is_inprogress = !1, this.need_dispatch = !1, this.listenTo(this.collection, "loadMap", this.confirmLoad), this.collection.init(), this.dropDown = this.$(".model-dropdown"), this.saveBtn = this.$(".model-btn"), this.listenTo(i, "new_address_add", this.change_address), this.listenTo(this.collection, "error", this.showError)
                },
                get_open_city_info: function () {
                    var e = this;
                    i.ajax({
                        url: o.config.apicdn + "/api/cpb/v1/config/open_citys.json",
                        type: "GET",
                        dataType: "JSON",
                        success: function (t) {
                            0 === t.response.error_code && (e.city_id_info = i.open_city_info = t.cities)
                        }
                    })
                },
                render: function () {
                    return this.$el.width(this.options.winW), this.$el.height(this.options.winH), this.$el.html(this.template(this.options)), this.closeOnTouchMove(), this.fixInput(), this
                },
                closeOnTouchMove: function () {
                    document.body.addEventListener("touchmove", this.unableTouch, !1)
                },
                openOnTouchMove: function () {
                    document.body.removeEventListener("touchmove", this.unableTouch, !1)
                },
                unableTouch: function (e) {
                    e.preventDefault()
                },
                change_address: function (t) {
                    if (this.city_id_info) {
                        var s = t.toJSON(), a = this.collection.map, n = s.location, o = this;
                        this.is_inprogress = !0, o.select_address = t, a.setCenter([n.lng, n.lat]), a.getCity(function (s) {
                            var a = s.citycode;
                            if (a) {
                                t.set("geo_city_code", a);
                                "0" + o.user_city_obj.gaode_city_code == a ? (o.uploadModel = t, o.saveBtn.removeClass("disable")) : o.uploadModel = "nofound"
                            } else o.uploadModel = "nopoint", o.saveBtn.addClass("disable");
                            setTimeout(function () {
                                o.is_inprogress = !1
                            }, 300), o.need_dispatch && (o.need_dispatch = !1, i.trigger("find_select_address", o.uploadModel, e.trim(o.searchInput.val()), this.select_address), o.$el.addClass("hidden"))
                        }), this.searchInput.val(s.district + s.name), this.fixInput(), this.dropDown.hide(), this.openOnTouchMove()
                    }
                },
                fixInput: function () {
                    this.searchInput = this.$("#searchInput"), this.searchInput.css("height", "24px");
                    var e = this.searchInput[0];
                    e.style.height = Math.ceil(e.scrollHeight - .8 * lib.flexible.rem) + "px"
                },
                confirmRemove: function () {
                    var e = this;
                    new d({
                        sHtml: '<div class="common-notice">将重新选择查找地址</br>是否继续？</div>',
                        mastClose: !0,
                        cancleX: !1,
                        extraClass: "flex-pop wc60",
                        animate: !0,
                        mode: "new_confirm",
                        cancel_txt: "放弃",
                        confirm_txt: "是",
                        callbacks: {
                            fnConfirmIng: function () {
                                return e.searchInput.val(""), e.uploadModel = null, e.fixInput(), !0
                            }
                        }
                    })
                },
                show: function (t) {
                    e(".teacher-list").css("visibility", "hidden"), t ? this.searchInput.val(t) : this.searchInput.val(""), this.is_inprogress = !1, this.need_dispatch = !1, this.closeOnTouchMove(), this.$el.removeClass("hidden"), this.fixInput()
                },
                showSearchVal: function () {
                    self.$("#newaddresses").html(""), this.collection.forEach(function (e, t) {
                        self.$("#newaddresses").append(new a({model: e}).render().el)
                    }), this.dropDown.show()
                },
                confirmLoad: function () {
                    this.loadedMap = !0
                },
                hideDropdown: function () {
                    "nopoint" == this.uploadModel && this.saveBtn.addClass("disable");
                    var e = this;
                    null != this.hideTimer && clearTimeout(this.hideTimer), this.hideTimer = setTimeout(function () {
                        e.dropDown.hide()
                    }, 1500)
                },
                fetchAddress: function (t) {
                    this.uploadModel = "nopoint";
                    var i = e(t.currentTarget), s = i.val();
                    1 == this.loadedMap && this.collection.fetch({search_val: s})
                },
                returnBack: function () {
                    e(".teacher-list").css("visibility", "visible"), this.searchInput.val(""), this.uploadModel = null, this.$el.addClass("hidden"), this.openOnTouchMove()
                },
                saveBack: function () {
                    var t = this;
                    return "nopoint" == this.uploadModel ? (null == this.global_pop && (this.global_pop = new d({
                        sHtml: '<div class="toast-message">请在下拉菜单中选择地址</div>',
                        mastClose: !0,
                        cancleX: !1,
                        extraClass: "toast-qingqing",
                        animate: !0,
                        toast: !1,
                        mode: "toast",
                        toast_time: 1e3,
                        toast_cb: function () {
                            t.global_pop = null
                        }
                    })), !1) : 1 != this.is_inprogress && (this.openOnTouchMove(), e(".teacher-list").css("visibility", "visible"), null == this.uploadModel ? (this.searchInput.val(""), this.$el.addClass("hidden"), !1) : ("nofound" == this.uploadModel && (this.uploadModel = null), i.trigger("find_select_address", this.uploadModel, e.trim(this.searchInput.val()), this.select_address), this.$el.addClass("hidden"), void 0))
                },
                showError: function () {
                    window.LoadingPage && window.LoadingPage.removeLoadingPage && window.LoadingPage.removeLoadingPage(), o.showSystemError()
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1301: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1), i(61)], void 0 !== (a = function (e, t, i, s, a) {
            return i.Collection.extend({
                model: i.Model, initialize: function (e) {
                    this.url = s.config.api + "/api/pb/v1/find_teacher/list_teachers.json", this.options = e, this.options.count = 10, this.options.tag = "", this.sub_course_aggs = null, this.characteristic_phrase_aggs = null, this.experience_phrase_aggs = null, this.end = !1, this.lock = !1
                }, init: function () {
                    var e = this;
                    s.add_loading_page(), this.fetch({
                        type: "post",
                        contentType: "application/json;charset=utf-8",
                        Accept: "application/json",
                        data: JSON.stringify(this.options),
                        success: function (t, i) {
                            e.trigger("first_read", e)
                        }
                    })
                }, add_item: function () {
                    var e = this;
                    1 != this.end && 0 == this.lock && (this.lock = !0, this.fetch({
                        type: "post",
                        contentType: "application/json;charset=utf-8",
                        Accept: "application/json",
                        data: JSON.stringify(this.options),
                        remove: !1,
                        success: function (t, i) {
                            i.teacher_info ? e.trigger("add_more", e.slice(-i.teacher_info.length)) : e.end = !0, e.lock = !1
                        },
                        error: function () {
                            s.remove_loading_page(), e.lock = !1
                        }
                    }))
                }, try_trigger: function (e) {
                    e.sub_course_aggs && (this.sub_course_aggs = e.sub_course_aggs),
                    e.course_aggs && (this.course_aggs = t.pluck(e.course_aggs, "key")), e.course_comment_phrase_aggs && (this.course_comment_phrase_aggs = t.pluck(e.course_comment_phrase_aggs, "key")), e.teach_content_phrase_aggs && (this.teach_content_phrase_aggs = t.pluck(e.teach_content_phrase_aggs, "key"))
                }, parse: function (t) {
                    if (s.remove_loading_page(), window.isMobile) var n = parseInt(.32 * window.innerWidth, 10); else var n = 320;
                    if (t.response && 0 === t.response.error_code) {
                        this.options.tag || this.try_trigger(t), this.options.tag == t.next_tag && (this.end = !0), this.options.tag = t.next_tag;
                        var o = t.teacher_info;
                        if (!o) return this.end = !0, [];
                        for (var r = 0; r < o.length; r++) {
                            o[r].famous_school_phrases && (o[r].famous_school_phrases = o[r].famous_school_phrases.slice(0, 3)), o[r].sub_course_phrases && (o[r].sub_course_phrases = o[r].sub_course_phrases.slice(0, 2)), o[r].teach_content_phrases && (o[r].teach_content_phrases = o[r].teach_content_phrases.slice(0, 5)), o[r].star_percent = 20 * o[r].star;
                            var d = 0;
                            if (o[r].support_friend_group && d++, o[r].has_course_package && d++, o[r].support_live_teaching && d++, o[r].is_hot_teacher && d++, o[r].icon_count = d, o[r].support_live_teaching && webcfg.student_show_live_audition ? (o[r].show_package_area = !0, o[r].live_free_audition = !0) : o[r].teacher_official_content_infos && (o[r].show_package_area = !0), o[r].teacher_official_content_infos) {
                                for (var c = {}, _ = o[r].teacher_official_content_infos, h = 0; h < _.length; h++) _[h].min_price = Math.ceil(_[h].min_price);
                                var l = origin_count = 2;
                                o[r].support_live_teaching && webcfg.student_show_live_audition && (l = 1), _.length >= l + 1 ? (o[r].support_live_teaching && webcfg.student_show_live_audition ? c.count = _.length + 1 : c.count = _.length, c.is_show_count = !0, c.contents = _.slice(0, l)) : c.contents = _, o[r].content_infos = c
                            }
                            var p = 0;
                            if (o[r].certifications) for (var u = 0; u < o[r].certifications.length; u++) {
                                var g = o[r].certifications[u].type;
                                "qingqing_star_teacher_certification" != g && "professional_certification" != g && "qingqing_teacher_certification" != g && (1 == o[r].certifications[u].is_certificed && p++, o[r].certifications[g] = o[r].certifications[u])
                            }
                            o[r].is_audition && p++, 0 == p && (o[r].no_cert = !0), o[r].teacher_info && o[r].teacher_info.new_head_image ? o[r].avatar = a.getWebp(s.config.img + o[r].teacher_info.new_head_image.replace(/\{0\}/, "cp_" + n + "x" + n + "/")) : o[r].teacher_info && "female" == o[r].teacher_info.sex ? o[r].avatar = i.mapImages.img_user_pic_female : o[r].avatar = i.mapImages.img_user_pic_male, o[r].renew_rate && (o[r].renew_rate = Math.round(o[r].renew_rate)), o[r].distance_from_me && (o[r].distance_from_me > 50 ? o[r].distance_from_me = ">50km" : o[r].distance_from_me < .1 ? o[r].distance_from_me = "<100m" : o[r].distance_from_me < 1 ? o[r].distance_from_me = Math.round(1e3 * o[r].distance_from_me) + "m" : o[r].distance_from_me = Math.round(10 * o[r].distance_from_me) / 10 + "km")
                        }
                        return t.teacher_info
                    }
                    if (e.isArray(t)) return t;
                    this.trigger("error")
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1302: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1023), i(7), i(1022), i(19)], void 0 !== (a = function (e, t, i, s, a, n, o) {
            var r = {0: "student_home_ost", 1: "teacher_home_ost", 2: "thirdpartplace_ost", 3: "live_ost"}, d = {
                qingqing_star_teacher_certification: ["明星", "star"],
                qingqing_teacher_certification: ["轻轻", "teacher"],
                teacher_qualification_certification: ["资质", "cert"],
                education_certification: ["学历", "edu"],
                id_card_certification: ["实名", "card"],
                professional_certification: ["证书", "pro"]
            };
            return o.registerHelper("certItemList", function (e) {
                if (!e) return "";
                for (var t = 0, i = e.length, s = [], a = 0; a < i; a++) if (1 == e[a].is_certificed) {
                    var n = d[e[a].type];
                    s.push('<span class="cert-item ' + n[1] + '">' + n[0] + "</span>"), t++
                }
                return 0 == s.length ? (s.push('<em class="empty">老师尚未做任何认证</em>'), s.unshift('<div class="cert-wrap cf">')) : s.unshift('<div class="cert-wrap mtv5 cf">'), s.push("</div>"), s.join("")
            }), i.View.extend({
                template: s.find_search_item,
                events: {click: "direct_teacher_home"},
                initialize: function (e) {
                    return e.model && (this.model = e.model), this.parent = e.parent, this.lock = !1, this.$el.attr("data-external", "actioncode=list"), this
                },
                direct_teacher_home: function () {
                    a.remove("login_direct_page_order");
                    var e = (a.get("ab_type"), a.get("user"));
                    if (!a.get("po_boolean")) {
                        var t = {
                            course_id: Number(this.parent.course_id),
                            grade_id: Number(this.parent.grade_id),
                            city_id: this.parent.city_id ? Number(this.parent.city_id) : 4,
                            request_type: "first_find_teacher_request_type",
                            request_source: "h5_find_teacher_request_source"
                        };
                        this.parent.sex && (t.sex = this.parent.sex), this.parent.need_audition && (t.need_audition = this.parent.need_audition), this.parent.current_position && (t.geo_point = this.parent.current_position), this.parent.site_type ? t.site_types = r[this.parent.site_type] : t.site_types = "teacher_home_ost", a.remove("po_obj"), a.set("po_obj", t)
                    }
                    if (e) {
                        if (this.teacher_second_id) this.redirect_page(); else if (!this.second_model && !this.lock) {
                            this.lock = !0;
                            var i = this.model.get("teacher_info").qingqing_user_id, s = this;
                            this.second_model = new n;
                            var o = base.config.api + "/api/h5pt/v1/teacher/second_id.json";
                            this.second_model.fetch({
                                url: o,
                                params: {qingqing_teacher_id: i},
                                success: function (e, t, a) {
                                    0 == t.response.error_code && (s.teacher_second_id = t.teacher_second_id, s.qingqing_teacher_id = i, s.lock = !1, s.redirect_page())
                                },
                                ignoreError: function () {
                                    s.lock = !1, s.redirect_login()
                                }
                            })
                        }
                    } else this.redirect_login()
                },
                redirect_page: function () {
                    window.location.href = base.config.mobile + "/teacher/" + this.qingqing_teacher_id + ".html?enter_type=h5_find_tr_list"
                },
                redirect_login: function () {
                    if (a.remove("login_direct_page_order"), base.isWeixin()) {
                        var e = base.loginurl + "?from=tr_list&enter_type=h5_find_tr_list#login/" + encodeURIComponent("请验证手机号后，查看老师详情") + "/" + this.model.get("teacher_info").qingqing_user_id;
                        a.set("login_direct_page", e), base.weixin_auth(e)
                    } else window.location.href = base.goToLogin({from: "tr_list"}) + "/" + encodeURIComponent("请验证手机号后，查看老师详情") + "/" + this.model.get("teacher_info").qingqing_user_id
                },
                render: function () {
                    return 0 == i.queryObj.isInOpenCity && this.model.set("hidden_info", !0), this.$el.html(this.template(this.model.toJSON())), this
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1303: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1023)], void 0 !== (a = function (e, t, i, s) {
            return i.View.extend({
                template: s.find_sort_view,
                events: {"click .intel-item": "change_type"},
                initialize: function (e) {
                    return e.model && (this.model = e.model, this.type = this.model.get("type")), this
                },
                change_type: function (t) {
                    var i = e(t.currentTarget), s = i.attr("data-type");
                    s != this.type && (this.type = s, this.$(".icon-confirm").addClass("hidden"), i.siblings().removeClass("active"), i.addClass("active"), i.find(".icon-confirm").removeClass("hidden"), this.model.set("type", s), this.model.trigger("changetype", s, e.trim(i.html()))), this.model.trigger("hide"), this.hide()
                },
                hide: function () {
                    this.$el.addClass("hidden")
                },
                render: function () {
                    return this.$el.html(this.template(this.model.toJSON())), this
                },
                final_swiper: function () {
                    var t = this, i = (e(".new_m_header"), e(".top-fixed-wrap"));
                    this.$el.css("height", "auto");
                    var s = window.innerHeight - i.height();
                    setTimeout(function () {
                        t.$el.height() > s && (t.$el.height(s), t.$(".intel-drop").height(s), t.swiper = new Swiper(".intel-drop", {
                            slidesPerView: "auto",
                            direction: "vertical",
                            freeMode: !0,
                            freeModeMomentumBounce: !1
                        }))
                    }, 0)
                },
                bind_swiper: function (e) {
                    var t = this;
                    e ? setTimeout(function () {
                        t.final_swiper()
                    }, 300) : t.final_swiper()
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1304: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1023)], void 0 !== (a = function (e, t, i, s) {
            return i.View.extend({
                template: s.find_site_view,
                events: {"click .door-item": "change_type"},
                initialize: function (e) {
                    return e.model && (this.model = e.model), this
                },
                change_type: function (t) {
                    var i = e(t.currentTarget), s = i.attr("data-type");
                    s != this.type && (this.type = s, this.$(".icon-confirm").addClass("hidden"), i.find(".icon-confirm").removeClass("hidden"), this.model.set("type", s), this.model.trigger("changetype", s, e.trim(i.html()))), this.model.trigger("hide"), this.hide()
                },
                hide: function () {
                    this.$el.addClass("hidden")
                },
                render: function () {
                    return this.$el.html(this.template(this.model.toJSON())), this
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1305: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1023)], void 0 !== (a = function (e, t, i, s) {
            return i.View.extend({
                template: s.find_grade_view,
                events: {"click .single-item": "change_type"},
                initialize: function (e) {
                    return e.model && (this.model = e.model, this.type = this.model.get("type")), this
                },
                change_type: function (t) {
                    var i = e(t.currentTarget), s = i.attr("data-id");
                    s != this.type && (this.type = s, this.$(".single-item").removeClass("active"), i.addClass("active"), this.model.set("type", s), this.model.trigger("changetype", s, e.trim(i.html()))), this.model.trigger("hide"), this.hide()
                },
                hide: function () {
                    this.$el.addClass("hidden")
                },
                render: function () {
                    return this.$el.html(this.template(this.model.toJSON())), this
                },
                final_swiper: function () {
                    var t = this, i = (e(".new_m_header"), e(".top-fixed-wrap"));
                    this.$el.css("height", "auto");
                    var s = window.innerHeight - i.height();
                    setTimeout(function () {
                        t.$el.height() > s && (t.$el.height(s), t.$(".grade-choose-list").height(s), t.swiper = new Swiper(".grade-choose-list", {
                            slidesPerView: "auto",
                            direction: "vertical",
                            freeMode: !0,
                            freeModeMomentumBounce: !1
                        }))
                    }, 0)
                },
                bind_swiper: function (e) {
                    var t = this;
                    e ? setTimeout(function () {
                        t.final_swiper()
                    }, 300) : t.final_swiper()
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1306: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1023)], void 0 !== (a = function (e, t, i, s) {
            return i.View.extend({
                template: s.find_city_view,
                events: {"click .single-item": "change_type"},
                initialize: function (e) {
                    return e.model && (this.model = e.model, this.type = this.model.get("type")), this
                },
                change_type: function (t) {
                    var i = e(t.currentTarget), s = i.attr("data-id");
                    s != this.type && (this.type = s, this.$(".single-item").removeClass("active"), i.addClass("active"), this.model.set("type", s), "default" == s ? this.model.trigger("changetype", s, "城市") : this.model.trigger("changetype", s, e.trim(i.html()))), this.model.trigger("hide"), this.hide()
                },
                hide: function () {
                    this.$el.addClass("hidden")
                },
                final_swiper: function () {
                    var t = this, i = (e(".new_m_header"), e(".top-fixed-wrap"));
                    this.$el.css("height", "auto");
                    var s = window.innerHeight - i.height();
                    setTimeout(function () {
                        t.$el.height() > s && (t.$el.height(s), t.$(".intel-drop").height(s), t.swiper = new Swiper(".intel-drop", {
                            slidesPerView: "auto",
                            direction: "vertical",
                            freeMode: !0,
                            freeModeMomentumBounce: !1
                        }))
                    }, 0)
                },
                bind_swiper: function (e) {
                    var t = this;
                    e ? setTimeout(function () {
                        t.final_swiper()
                    }, 300) : t.final_swiper()
                },
                render: function () {
                    return this.$el.html(this.template(this.model.toJSON())), this
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1307: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1022), i(1023)], void 0 !== (a = function (e, t, i, s, a) {
            return i.View.extend({
                template: a.find_audition_view,
                className: "group-search-wrap rel",
                events: {
                    "click .site-type-wrap .single-item": "change_site_type",
                    "click .sex-wrap div": "change_sex_type",
                    "click .teacher_feature_phrases-wrap .address-item": "change_phrase_type",
                    "click #site_type_live": "change_site_type_live",
                    "click #is_support_official_package": "change_official_package",
                    "click #is_friend_group": "change_friend_group",
                    "click #is_audition": "change_need_audition",
                    "click #is_university": "change_university",
                    "click #is_audio_video": "change_audio",
                    "click #is_course_package": "change_course_package",
                    "click #is_famous_school_students": "change_course_package",
                    "click .school_age_range-wrap .single-item": "change_teacher_experience",
                    "click .js-reset": "reset_data",
                    "click .js-confirm": "confrim_back",
                    "click .icon-drop-wrap": "toggle_drop"
                },
                initialize: function (e) {
                    return this.tag_arr = [], e.model && (this.model = e.model, this.model.set("confirm_tag", [])), this
                },
                change_site_type: function (t) {
                    var i = e(t.currentTarget);
                    i.hasClass("active") ? i.removeClass("active") : (i.siblings().removeClass("active"), i.addClass("active"))
                },
                change_site_type_live: function (t) {
                    var i = e(t.currentTarget);
                    i.hasClass("active") ? i.removeClass("active") : i.addClass("active")
                },
                toggle_drop: function (t) {
                    var i = e(t.currentTarget), s = this.$(".teacher_feature_phrases-wrap .single-item-wrap");
                    s.hasClass("single-line") ? (s.removeClass("single-line"), i.find(".icon-drop").addClass("rotate")) : (s.addClass("single-line"), i.find(".icon-drop").removeClass("rotate")), this.bind_swiper(!0)
                },
                change_sex_type: function (t) {
                    var i = e(t.currentTarget);
                    i.hasClass("active") ? i.removeClass("active") : (i.siblings().removeClass("active"), i.addClass("active"))
                },
                calculate_sex_type: function () {
                    var e = null, t = null, i = this.$(".male"), s = this.$(".female");
                    return i.hasClass("active") && (e = 1), s.hasClass("active") && (t = 1), null == e && null == t || 1 == e && 1 == t ? null : 1 == e ? 1 : 0
                },
                change_phrase_type: function (t) {
                    var i = e(t.currentTarget), s = e.trim(i.html());
                    i.hasClass("active") ? (i.removeClass("active"), this.remove_tag(s)) : (i.addClass("active"), this.tag_arr.push(s)), this.change_phrase_txt()
                },
                remove_tag: function (e) {
                    var t = this.tag_arr.indexOf(e);
                    -1 != t && this.tag_arr.splice(t, 1)
                },
                change_phrase_txt: function () {
                },
                calculate_phrase_type: function () {
                    var t = [];
                    return this.$(".address-item.active").each(function (i, s) {
                        t.push(e.trim(e(s).html()))
                    }), 0 != t.length ? t : null
                },
                confrim_back: function () {
                    this.$("#site_type_live").hasClass("active") ? this.model.set("site_type", 3, {silent: !0}) : this.model.set("site_type", null, {silent: !0});
                    var t = this.$(".sex-wrap .active");
                    0 != t.length ? this.model.set("sex", Number(t.attr("data-id")), {silent: !0}) : this.model.set("sex", null);
                    var i = this.$(".school_age_range-wrap .active");
                    if (0 != i.length) {
                        var s = i, a = s.attr("data-lower"), n = s.attr("data-upper"), o = {};
                        null != a && (o.lower = Number(a)), null != n && (o.upper = Number(n)), this.change_phrase_txt(), this.model.set("school_age_range", o, {silent: !0})
                    } else this.model.set("school_age_range", null, {silent: !0});
                    var r = this.calculate_phrase_type();
                    this.model.set("characteristics_phrases", r, {silent: !0});
                    var d = [];
                    this.$("#is_audition").hasClass("active") && d.push("is_audition_teacher_mark_badge"), this.$("#is_university").hasClass("active") && d.push("undergraduate_teacher_mark_badge"), 0 == d.length ? this.model.set("teacher_badges", null, {silent: !0}) : this.model.set("teacher_badges", d, {silent: !0}), this.$("#is_friend_group").hasClass("active") ? (this.model.set("support_friend_group", !0, {silent: !0}), e("#friend_group").addClass("active")) : (this.model.set("support_friend_group", !1, {silent: !0}), e("#friend_group").removeClass("active")), this.$("#is_audio_video").hasClass("active") ? this.model.set("has_audio_or_video", !0, {silent: !0}) : this.model.set("has_audio_or_video", !1, {silent: !0}), this.$("#is_course_package").hasClass("active") ? this.model.set("has_course_package", !0, {silent: !0}) : this.model.set("has_course_package", !1, {silent: !0}), this.$("#is_support_official_package").hasClass("active") ? this.model.set("is_support_official_package", !0, {silent: !0}) : this.model.set("is_support_official_package", !1, {silent: !0}), this.$("#is_famous_school_students").hasClass("active") ? this.model.set("has_famous_school_students", !0, {silent: !0}) : this.model.set("has_famous_school_students", !1, {silent: !0});
                    for (var c = [], _ = 0; _ < this.tag_arr.length; _++) c.push(this.tag_arr[_]);
                    this.model.set("confirm_tag", c), this.model.trigger("changetype", this.model), this.model.trigger("hide"), this.hide()
                },
                change_friend_group: function (t) {
                    var i = e(t.currentTarget);
                    i.hasClass("active") ? i.removeClass("active") : i.addClass("active")
                },
                change_need_audition: function (t) {
                    var i = e(t.currentTarget);
                    i.hasClass("active") ? i.removeClass("active") : i.addClass("active")
                },
                change_university: function (t) {
                    var i = e(t.currentTarget);
                    i.hasClass("active") ? i.removeClass("active") : i.addClass("active")
                },
                change_audio: function (t) {
                    var i = e(t.currentTarget);
                    i.hasClass("active") ? i.removeClass("active") : i.addClass("active")
                },
                change_course_package: function (t) {
                    var i = e(t.currentTarget);
                    i.hasClass("active") ? i.removeClass("active") : i.addClass("active")
                },
                change_official_package: function (t) {
                    var i = e(t.currentTarget);
                    i.hasClass("active") ? i.removeClass("active") : i.addClass("active")
                },
                change_teacher_experience: function (t) {
                    var i = e(t.currentTarget);
                    i.hasClass("active") ? i.removeClass("active") : (i.siblings().removeClass("active"), i.addClass("active"))
                },
                reset_data: function () {
                    this.reset_ui()
                },
                reset_ui: function () {
                    this.$(".active").removeClass("active"), this.$(".title span").html("不限"), this.tag_arr = []
                },
                hide: function () {
                    this.$el.addClass("hidden")
                },
                render: function () {
                    return 1 == i.queryObj.live_only && this.model.set("live_only", !0), 0 == i.queryObj.isInOpenCity && this.model.set("hidden_info", !0), this.$el.html(this.template(this.model.toJSON())), this
                },
                final_swiper: function () {
                    var t = this, i = (e(".new_m_header"), e(".top-fixed-wrap"));
                    this.$el.css("height", "auto");
                    var s = window.innerHeight - i.height();
                    setTimeout(function () {
                        if (t.$el.height() > s) {
                            t.$el.height(s);
                            var e = t.$(".bottom-wrap").height();
                            t.$(".group-search").height(s - e), t.swiper = new Swiper(".group-search", {
                                slidesPerView: "auto",
                                direction: "vertical",
                                freeMode: !0,
                                freeModeMomentumBounce: !1
                            })
                        }
                    }, 0)
                },
                bind_swiper: function (e) {
                    var t = this;
                    e ? setTimeout(function () {
                        t.final_swiper()
                    }, 300) : t.final_swiper()
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1308: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1023)], void 0 !== (a = function (e, t, i, s) {
            return i.View.extend({
                template: s.find_district_view,
                events: {"click .single-item": "change_district_type", "click .oneline-choose": "select_site_type"},
                initialize: function (e) {
                    return e.model && (this.model = e.model), this
                },
                direct_to_map_page: function () {
                    window.location.hash = "#map"
                },
                change_district_type: function (t) {
                    var i = e(t.currentTarget), s = i.attr("data-id");
                    this.id = s || null, this.model.set("id", s || null), i.siblings().removeClass("active"), i.addClass("active");
                    this.model.set("site_type", Number(i.parent().prev().attr("data-id")), {silent: !0}), s ? this.model.trigger("changetype", [Number(s)], this.model, "学生上门") : this.model.trigger("changetype", null, this.model, "学生上门"), this.model.trigger("hide"), this.hide()
                },
                select_site_type: function (t) {
                    var i = this, s = e(t.currentTarget);
                    e(".oneline-choose").removeClass("active"), s.addClass("active"), s.hasClass("student") ? (this.$(".set_address").addClass("hidden"), s.hasClass("border_bottom") || (s.addClass("border_bottom"), this.$(".single-item-wrap-addr").removeClass("hidden")), this.destroy_swiper(!0, !1), this.bind_swiper()) : s.hasClass("all_way") ? (this.$(".oneline-choose").removeClass("border_bottom"), this.$(".single-item-wrap-addr").addClass("hidden"), this.$(".single-item").removeClass("active"), this.$(".my_address").hasClass("hidden") ? (this.$(".set_address").insertAfter(s).removeClass("hidden"), this.destroy_swiper(), this.bind_swiper()) : (this.destroy_swiper(!0, !0), this.bind_swiper(), i.model.set("site_type", null, {silent: !0}), i.model.trigger("changetype_site", this.model, "不限"), i.model.trigger("hide"), i.hide())) : s.hasClass("teacher") ? (this.$(".oneline-choose").removeClass("border_bottom"), this.$(".single-item-wrap-addr").addClass("hidden"), this.$(".my_address").hasClass("hidden") ? (this.$(".set_address").insertAfter(s).removeClass("hidden"), this.destroy_swiper(), this.bind_swiper()) : (this.destroy_swiper(!0, !0), this.bind_swiper(), i.model.set("site_type", Number(s.attr("data-id")), {silent: !0}), i.model.trigger("changetype_site", this.model, "老师上门"), i.model.trigger("hide"), i.hide())) : (this.$(".set_address").addClass("hidden"), this.$(".oneline-choose").removeClass("border_bottom"), this.$(".single-item-wrap-addr").addClass("hidden"), this.destroy_swiper(!0, !0), this.bind_swiper(), i.model.set("site_type", Number(s.attr("data-id")), {silent: !0}), i.model.trigger("changetype_site", this.model, "在线课"), i.model.trigger("hide"), i.hide())
                },
                hide: function () {
                    this.$el.addClass("hidden")
                },
                render: function () {
                    return this.model.set("address_exit", !0, {silent: !0}), "获取地址失败" != this.model.get("address") && "" != this.model.get("address") && void 0 !== this.model.get("address") || this.model.set("address_exit", !1, {silent: !0}), this.$el.html(this.template(this.model.toJSON())), this.init_height(), this
                },
                init_height: function () {
                    var t = e(".top-fixed-wrap"), i = window.innerHeight - t.height(), s = e("html").css("font-size");
                    s = s.replace("px", ""), this.$(".my_address").hasClass("hidden") ? i = 5.333333 * s : i >= 6.346666 * s && (i = 6.346666 * s), this.$(".the_door_way").height(i)
                },
                destroy_swiper: function (e, t) {
                    this.swiper && this.swiper.destroy(e, t)
                },
                final_swiper: function () {
                    var e = this;
                    this.init_height(), e.swiper = new Swiper(".the_door_way", {
                        slidesPerView: "auto",
                        direction: "vertical",
                        freeMode: !0,
                        freeModeMomentumBounce: !1
                    })
                },
                bind_swiper: function () {
                    this.final_swiper()
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1309: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1023)], void 0 !== (a = function (e, t, i, s) {
            return i.View.extend({
                template: s.find_course_view,
                events: {"click .item": "change_type"},
                initialize: function (e) {
                    return this.options = e, this.model = e.model, this
                },
                change_type: function (t) {
                    var i = e(t.currentTarget), s = i.attr("data-id");
                    "unlimit" == s && (s = "unlimit"), this.$(".icon-confirm").addClass("hidden"), this.model.set("course_id", s), this.model.trigger("changetype", s, e.trim(i.find(".txt").html())), this.model.trigger("hide"), this.hide()
                },
                hide: function () {
                    this.$el.addClass("hidden")
                },
                render: function () {
                    return this.$el.html(this.template(this.options.courses)), this
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1310: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1023)], void 0 !== (a = function (e, t, i, s) {
            return i.View.extend({
                template: s.secondary_courses_view,
                className: "secondary_courses_wrap",
                events: {
                    "click .single_item": "change_type",
                    "click .js_confirm": "confirm_back",
                    "click .js_reset": "reset_model"
                },
                initialize: function (e) {
                    return e.model && (this.model = e.model), this
                },
                reset_model: function () {
                    this.$(".single_item").removeClass("active")
                },
                calculate_phrase_type: function () {
                    var t = [];
                    return this.$(".single_item.active").each(function (i, s) {
                        t.push(e.trim(e(s).html()))
                    }), 0 != t.length ? t : null
                },
                confirm_back: function () {
                    var e = this.calculate_phrase_type();
                    this.model.set("sub_courses_phrases", e), this.model.trigger("changetype", this.model), this.model.trigger("hide"), this.hide()
                },
                change_type: function (t) {
                    e(t.currentTarget).toggleClass("active")
                },
                hide: function () {
                    this.$el.addClass("hidden")
                },
                render: function () {
                    return this.$el.html(this.template(this.model.toJSON())), this
                },
                bind_swiper: function () {
                    var t = e(".new_m_header"), i = e(".search-bar-wrap"), s = e(".search-list-tagwrap"),
                        a = this.$(".btn_reset"), n = window.innerHeight - t.height() - i.height() - s.height(),
                        o = a.height(), r = parseInt(a.css("margin-top"), 10);
                    this.$(".secondary_courses_tag_wrap").height() > n - o - r && (this.$(".secondary_courses_tag_wrap").height(n - o - r), this.swiper = new Swiper(this.$(".secondary_courses_tag_wrap")[0], {
                        slidesPerView: "auto",
                        direction: "vertical"
                    }))
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1311: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1023)], void 0 !== (a = function (e, t, i, s) {
            return i.View.extend({
                template: s.secondary_courses_view,
                className: "secondary_courses_wrap",
                events: {
                    "click .single_item": "change_type",
                    "click .js_confirm": "confirm_back",
                    "click .js_reset": "reset_model"
                },
                initialize: function (e) {
                    return e.model && (this.model = e.model), this
                },
                reset_model: function () {
                    this.$(".single_item").removeClass("active")
                },
                calculate_phrase_type: function () {
                    var t = [];
                    return this.$(".single_item.active").each(function (i, s) {
                        t.push(e.trim(e(s).html()))
                    }), 0 != t.length ? t : null
                },
                confirm_back: function () {
                    var e = this.calculate_phrase_type();
                    this.model.set("select_course_comment_phrases", e), this.model.trigger("changetype", this.model), this.model.trigger("hide"), this.hide()
                },
                change_type: function (t) {
                    e(t.currentTarget).toggleClass("active")
                },
                hide: function () {
                    this.$el.addClass("hidden")
                },
                render: function () {
                    return this.$el.html(this.template(this.model.toJSON())), this
                },
                bind_swiper: function () {
                    var t = e(".new_m_header"), i = e(".search-bar-wrap"), s = e(".search-list-tagwrap"),
                        a = this.$(".btn_reset"), n = window.innerHeight - t.height() - i.height() - s.height(),
                        o = a.height(), r = parseInt(a.css("margin-top"), 10);
                    this.$(".secondary_courses_tag_wrap").height() > n - o - r && (this.$(".secondary_courses_tag_wrap").height(n - o - r), this.swiper = new Swiper(this.$(".secondary_courses_tag_wrap")[0], {
                        slidesPerView: "auto",
                        direction: "vertical"
                    }))
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }, 1312: function (e, t, i) {
        var s, a;
        s = [i(3), i(5), i(4), i(1023), i(29)], void 0 !== (a = function (e, t, i, s, a) {
            return i.View.extend({
                template: s.secondary_courses_view,
                className: "secondary_courses_wrap",
                events: {
                    "click .single_item": "change_type",
                    "click .js_confirm": "confirm_back",
                    "click .js_reset": "reset_model"
                },
                initialize: function (e) {
                    return e.model && (this.model = e.model), this
                },
                reset_model: function () {
                    this.$(".single_item").removeClass("active")
                },
                calculate_phrase_type: function () {
                    var t = [];
                    return this.$(".single_item.active").each(function (i, s) {
                        t.push(e.trim(e(s).html()))
                    }), 0 != t.length ? t : null
                },
                confirm_back: function () {
                    var e = this.calculate_phrase_type();
                    this.model.set("select_teach_experience_phrases", e), this.model.trigger("changetype", this.model), this.model.trigger("hide"), this.hide()
                },
                change_type: function (t) {
                    e(t.currentTarget).toggleClass("active")
                },
                hide: function () {
                    this.$el.addClass("hidden")
                },
                render: function () {
                    return this.$el.html(this.template(this.model.toJSON())), this
                },
                bind_swiper: function () {
                    var t = e(".new_m_header"), i = e(".search-bar-wrap"), s = e(".search-list-tagwrap"),
                        n = this.$(".btn_reset"), o = window.innerHeight - t.height() - i.height() - s.height(),
                        r = n.height(), d = parseInt(n.css("margin-top"), 10);
                    this.$(".secondary_courses_tag_wrap").height() > o - r - d && (this.$(".secondary_courses_tag_wrap").height(o - r - d), this.swiper = new a(this.$(".secondary_courses_tag_wrap")[0], {
                        slidesPerView: "auto",
                        direction: "vertical"
                    }))
                }
            })
        }.apply(t, s)) && (e.exports = a)
    }
});